【测试学习笔记】Junit——java单元测试

知识点

  • @test修饰用于测试
  • @test的两个参数:timeout=毫秒、expect=xxx.class(用于预期异常)
  • @RunWith测试运行器:参数设置、套件测试

源代码

public class MyDemo {

    public int add(int a,int b){
        return a+b;
    }
    
    public int minus(int a,int b){
        return a-b;
    }
    
    public int divide(int a,int b){
        return a/b;
    }
}

1、建立测试单元

public class MyDemoTest {
     //对add函数正常测试   
    @Test
    public void addTest() {
        assertEquals(5, new MyDemo().add(2, 3));
    }
     //@Ignore修饰后,对minus函数忽略测试  
    @Ignore
    @Test
    public void minusTest() {
        assertEquals(-1, new MyDemo().minus(2, 3));
    }
    //@test中,参数设置预估异常,如果异常出现,则测试通过
    @Test(expected = ArithmeticException.class)
    public void divideExceptionTest() {
        assertEquals(1, new MyDemo().divide(3, 0));
    }

}

2、套件测试(同时测试多个测试单元)

@RunWith(Suite.class)
@Suite.SuiteClasses({MyDemoTest1.class,MyDemoTest2.class})
public class SuitTest {
    /***
#这里不需添加其他函数
#测试类前用RunWith(Suite.class)修饰
#需要同时测试的测试类放到@Suite.SuiteClasses中

  ***/
}

3、RunWith参数设置(相当于提前预设很多测试参数)

//类前用@RunWith(Parameterized.class)修饰
//建立集合方法,预设参数
@RunWith(Parameterized.class)
public class ParameterTest {

    int expected = 0;
    int input1 = 0;
    int input2 = 0;
        
    
    @Parameters
    public static Collection t(){
        return Arrays.asList(new Object[][]{
                {3,1,2},
                {4,2,2}
                
        });
    }
    
    public ParameterTest(int expected,int input1,int input2){
        this.expected = expected;
        this.input1 = input1;
        this.input2 = input2;
        
    }
    
    @Test
    public void add() {
        assertEquals(expected, new MyDemo().add(input1, input2));
    }

}

参考

http://www.imooc.com/learn/356

你可能感兴趣的:(【测试学习笔记】Junit——java单元测试)