JunitTest 下集
1. 测试类的私有方法时可以采取两种方式:
1)
修改方法的访问修饰符,将private修改为default或public(但不推荐采取这种方式)。
2)
使用反射在测试类中调用目标类的私有方法(推荐)。
2. TestSuite(测试套件):可以将多个测试组合到一起,同时执行多个测试。
3.
JUnit 4全面引入了Annotation来执行我们编写的测试。
4. JUnit 4并不要求测试类继承TestCase父类。
5.
在一个测试类中,所有被@Test注解所修饰的public,void方法都是test case,可以被JUnit所执行。
6. 虽然JUnit
4并不要求测试方法名以test开头,但我们最好还是按照JUnit 3.8的要求那样,以test作为测试方法名的开头。
7. 在JUnit
4中,通过@Before注解实现与JUnit 3.8中的setUp方法同样的功能,通过@After注解实现与JUnit
3.8中的tearDown方法同样的功能。
8. 在JUnit 4中,可以使用@BeforeClass与@AfterClass注解修饰一个public
static void
no-arg的方法,这样被@BeforeClass注解所修饰的方法会在所有测试方法执行前执行;被@AfterClass注解所修饰的方法会在所有测试方法执行之后执行。
9.
@Ignore注解可用于修饰测试类与测试方法,当修饰测试类时,表示忽略掉类中的所有测试方法;当修饰测试方法时,表示忽略掉该测试方法。
10.
参数化测试(Parameters):当一个测试类使用参数化运行器运行时,需要在类的声明处加上@RunWith(Parameterized.class)注解,表示该类将不使用JUnit内建的运行器运行,而使用参数化运行器运行;在参数化运行类中提供参数的方法上要使用@Parameters注解来修饰,同时在测试类的构造方法中为各个参数赋值(构造方法是由JUnit调用的),最后编写测试类,它会根据参数的组数来运行测试多次。
11.
在JUnit
4中,如果想要同时运行多个测试,需要使用两个注解:@RunWith(Suite.class)以及@Suite.SuiteClasses(),通过这两个注解分别指定使用Suite运行器来运行测试,以及指定了运行哪些测试类,其中的@SuiteClasses中可以继续指定Suite,这样JUnit会再去寻找里面的测试类,一直找到能够执行的Test
Case并执行之。
12. JUnit在TestCase类中应用了模板方法模式
13.
JUnit在TestCase类中应用了适配器(Adapter)模式