我一直在寻找有关如何使用我自己的注释扩展JUnit4的资源。
我希望能够定义一个@ExpectedProblem
,我可以用它来标记我的一些测试。我已经看到网上似乎有一些关于如何扩展TestNG的材料,但我可以不用任何东西来扩展JUnit4。
过去有没有人在这里扩展过JUnit4?
由于
答案 0 :(得分:2)
根据您希望@ExpectedProblem
注释执行的操作,另一个选项是创建@Rule
。
这需要JUnit 4.7+,但应该比实现自己的Runner
更简单。
例如,如果您希望注释说“此测试应抛出异常”,那么您需要查看@ExpectedException
规则。即使这不足以满足您的需求,它也可以为实施您自己的规则提供一个良好的起点。
答案 1 :(得分:1)
基本方法是创建自己的类跑步者。例如,通过扩展org.junit.runners.ParentRunner
或org.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