Junit教程
一般创建maven项目,都会自动在pom.xml文件里添加好junit的依赖,去掉scoap。
- 按照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