sam*_*sam 29 java junit junit4
我明白那个,
@Before并分别@BeforeClass在每个测试或整个测试类之前运行@Rule并分别@ClassRule包装每个测试或整个测试类.假设我需要在每个测试方法之前初始化一些数据,
我如何决定使用@Before和@Rule?在什么条件下优先于另一种?同样的问题也无二@BeforeClass对比@ClassRule.
实际上,正如@Quwin所建议的那样,根据JUnit 4.12 API文档,
TestRule能做到这一点,之前可以用注解的方法来所做的一切@Before,@After,@BeforeClass,或@AfterClass,但TestRules为(1)更强大,和(2)项目和类之间更容易地共享。
方法是TestRules为更强大:
有的已知实现类TestRule,这些是您可以直接使用的有用规则,
有关如何使用它的示例,请参阅提供的这些TestRules或自己编写:
ErrorCollector:在一种测试方法中收集多个错误ExpectedException:对抛出的异常做出灵活的断言ExternalResource:例如,启动和停止服务器TemporaryFolder:创建新文件,并在测试后删除TestName:记住在方法中使用的测试名称TestWatcher:在方法执行期间的事件中添加逻辑Timeout:导致测试在设定的时间后失败Verifier:如果对象状态最终不正确,则失败测试
规则的另一个好处是,可以在单个测试用例中使用多个规则。您可能要使用RuleChain来指定规则运行的顺序。
| 归档时间: |
|
| 查看次数: |
8844 次 |
| 最近记录: |