Junit教程

通常建立maven项目,都会自动在pom.xml文件里添加好junit的依赖,去掉scoap。java

  • 按照maven的标准,测试类应该放到src/test/java文件下,这样打包的时候会自动执行全部测试类,测试类名格式为XXXTest。
  • @BeforeClass方法在测试到这个类时会执行,只执行一次,是静态方法,@Before是每执行类里的一个@Test方法就会执行一次。AfterClass和After的区别同样。因此顺序通常是@BeforeClass@Before@Test@After...@Before@Test@After@AfterClass
  • @Ingore的方法不会被执行
  • 下面这个是套件测试,也就是在SuitTest类里执行run as junit,会依次执行Class1Test,Class1Test
@RunWith(Suite.class)
@Suite.SuiteClasses({ Class1Test.class,Class2Test.class })
public class SuitTest {

	
}
  •   参数化测试,也就是想用多套入参测试某个类的某个方法
@RunWith(Parameterized.class)
public class UserTest {

    private int expected;
    private int first;
    private int second;

    public UserTest(int expectedResult, int firstNumber, int secondNumber) {
        this.expected = expectedResult;
        this.first = firstNumber;
        this.second = secondNumber;
    }

    @Parameters
    public static Collection addedNumbers() {
        return Arrays.asList(new Integer[][] { { 3, 1, 2 }, { 5, 2, 3 },
                { 7, 3, 4 }, { 9, 4, 5 }, });
    }

    @Test
    public void sum() {
        User user = new User();
        System.out.println("Addition with parameters : " + first + " and "
                + second);
        assertEquals(expected, user.sum(first, second));
    }
}
  • 若是指望结果是目标方法抛出某个异常,那注解就是@Test(expected =XXXException.class) 
  • 断言有:assertEquals/assertTrue/assertFalse/assertNotNull/assertNull/assertNotSame/assertSame/assertArrayEquals
相关文章
相关标签/搜索