More Related Content
More from Medivh2011 (18)
Unit test lesson 2
- 1. Unit Test Lesson 2
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 类中应用了模板方法模式:
- 2. 13. JUnit 在 TestCase 类中应用了适配器(Adapter)模式:
在 runBare 方法中,通过 runTest 方法将我们自己编写的 testXXX 方法进行了适配,
使得 JUnit 可以执行我们自己编写的 Test Case,runTest 方法的实现如下:
在 runTest 方法中,首先获得我们自己编写的 testXXX 方法所对应的 Method 对象
(不带参数),然后检查该 Method 对象所对应的方法是否是 public 的,如果是
则调用 Method 对象的 invoke 方法来去执行我们自己编写的 testXXX 方法。