创建我自己的注释以扩展JUnit4行为

时间:2011-08-04 08:03:35

标签: java unit-testing testing junit junit4

我一直在寻找有关如何使用我自己的注释扩展JUnit4的资源。

我希望能够定义一个@ExpectedProblem,我可以用它来标记我的一些测试。我已经看到网上似乎有一些关于如何扩展TestNG的材料,但我可以不用任何东西来扩展JUnit4。

过去有没有人在这里扩展过JUnit4?

由于

2 个答案:

答案 0 :(得分:2)

根据您希望@ExpectedProblem注释执行的操作,另一个选项是创建@Rule

这需要JUnit 4.7+,但应该比实现自己的Runner更简单。

例如,如果您希望注释说“此测试应抛出异常”,那么您需要查看@ExpectedException规则。即使这不足以满足您的需求,它也可以为实施您自己的规则提供一个良好的起点。

答案 1 :(得分:1)

基本方法是创建自己的类跑步者。例如,通过扩展org.junit.runners.ParentRunnerorg.junit.runners.BlockJUnit4ClassRunner类。然后,您将使用@RunWith(<your class runner>.class)注释您的测试类。在你的跑步者中,你可以分析测试类以检查注释并采取适当的行动等。发现这个谷歌搜索:http://tedyoung.me/2011/01/23/junit-runtime-tests-custom-runners/

这就是Spring使用org.springframework.test.context.junit4.SpringJUnit4ClassRunner

建模JUnit支持的方式