单元测试

单元测试:   
          如果一个方法是测试方法,必须加上@Test注解
          测试方法必须没有返回值,且不能有参数
          Junit Test case-->  选择版本4  --> 设置名称和要测试的类  --> 选择下一步  --> 选择要测试的方法 -->  finish
          如果没有要测试的类,则只需建立一个测试类即可;
          outline--> 选择要执行的测试方法 -->  执行     结果为绿色  则成功;  也可以将鼠标放在方法名上执行
          检测时,点击单元测试类运行,即可一次性测试所有的测试方法
          
          
          例子:对类SomeDao中的sum和divide方法进行测试
                      public class SomeDao {
                              public int sum(int i, int j){
                                        return i+j;
                              }                 
                              public int divide(int i, int j){
                                        return i/j;
                              }
                     }
                   
                    单元测试1:
                      import static org.junit.Assert.*;
                      import junit.framework.Assert;
                      import org.junit.Test;
                      import cn.itcast.dao.SomeDao;
                      public class SomeDaoTest1 {
                                    @Test
                                    public void testSum() {
                                            SomeDao dao = new SomeDao();
                                            int result = dao.sum(1, 2);
                                            System.out.println(result);
                                    }
                                    
                                    @Test
                                    public void testDivide() {
                                            SomeDao dao = new SomeDao();
                                            int result = dao.divide(6, 2);
                                            // 使用断言方法 第一个参数为期望值,后面为实际值
                                            // 比在控制台输出人为校验好,断言由程序校验
                                            Assert.assertEquals(3, result); 
                                    }
                                    
                                    // 测试不正常结果(异常)
                                    @Test(expected=java.lang.ArithmeticException.class)
                                    public void testDivide2(){
                                            SomeDao dao = new SomeDao();
                                            int result = dao.divide(6, 0);
                                    }
                                    
                                    // 测试效率:  10ms内完成
                                    @Test(timeout=10) // 单位是毫秒
                                    public void testDivide1() {
                                            SomeDao dao = new SomeDao();
                                            int result = dao.divide(6, 2);
                                            Assert.assertEquals(3, result); 
                                    }
                      }
                      
                            *******************************************************************************************************************
                      
                      单元测试2:
                      public class SomeDaoTest3 {
                                  static SomeDao dao = null;
                                  
                                  @Before // 每个测试方法执行前会执行该方法
                                  public void newD(){
                                          // System.out.println("新建dao对象");
                                          dao = new SomeDao();
                                  }
                                  
                                  @After  // 每个测试方法执行后会调用该方法 
                                  public void nullD(){
                                          // System.out.println("清空dao对象");
                                          dao = null;
                                  }
                                  
                                  @Test
                                  public void testSum() {
                                          int result = dao.sum(1, 2);
                                          System.out.println(result);
                                  }


                                  @Test
                                  public void testDivide() {
                                          int result = dao.divide(6, 2);                                   
                                          Assert.assertEquals(3, result); 
                                  }
                                  
                                  // 测试不正常结果(异常)
                                  @Test(expected=java.lang.ArithmeticException.class)
                                  public void testDivide2(){
                                          int result = dao.divide(6, 0);
                                  }
                                  
                                  // 测试效率:  10ms内完成
                                  @Test(timeout=10) // 单位是毫秒
                                  public void testDivide1() {
                                          int result = dao.divide(6, 2);
                                          Assert.assertEquals(3, result); 
                                  }
                      }
                      
                                                ******************************************************************************************************************
                      
                      单元测试3:
                      import static org.junit.Assert.*;
                      import junit.framework.Assert;
                      import org.junit.AfterClass;
                      import org.junit.BeforeClass;
                      import org.junit.Test;
                      import cn.itcast.dao.SomeDao;
                      public class SomeDaoTest4 {                      
                                  static SomeDao dao = null;
                                  
                                  @BeforeClass   // 类加载时就调用,只执行一次
                                  public static void newD(){
                                          System.out.println("类加载时新建dao对象");
                                          dao = new SomeDao();
                                  }
                                  
                                  @AfterClass    // 类退出时只执行一次
                                  public static void nullD(){
                                          System.out.println("类结束时清空dao对象");
                                          dao = null;
                                  }


                                  @Test
                                  public void testSum() {
                                          int result = dao.sum(1, 2);
                                          System.out.println(result);
                                  }


                                  @Test
                                  public void testDivide() {
                                          int result = dao.divide(6, 2);
                                          // 使用断言方法 第一个参数为期望值,后面为实际值
                                          // 比在控制台输出人为校验好,断言由程序校验
                                          Assert.assertEquals(3, result); 
                                  }
                                  
                                  // 测试不正常结果(异常)
                                  @Test(expected=java.lang.ArithmeticException.class)
                                  public void testDivide2(){
                                          int result = dao.divide(6, 0);
                                  }
                                  
                                  // 测试效率:  10ms内完成
                                  @Test(timeout=10) // 单位是毫秒
                                  public void testDivide1() {
                                          int result = dao.divide(6, 2);
                                          Assert.assertEquals(3, result); 
                                  }
                      }
                      
                   


          
          
          
          
          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值