【发布时间】:2012-01-04 06:06:51
【问题描述】:
用例很简单:我想在使用@Test 和我的自定义注释(我们称之为@Mine)注释的JUnit 测试中的每个方法之前运行一些样板代码。
我不想使用以下方法(括号中的解释):
- @RunWith(我的测试可能已经使用,也可能不使用这个注解,所以我不能假设我可以使用我自己的跑步者)
- AOP(我不能对第三方库建立任何依赖关系,例如 AspectJ)
我想这只会让我反思,这对我来说很好。我考虑过使用 @Before 并通过 Thread.getCurrentThread() 等获取当前方法,但不知何故我发现这个解决方案有点脏,因为我必须在这个方法中再次制作样板代码来触发反射(并且避免任何不必要的代码是首要目标)。
也许您还有其他想法?
【问题讨论】:
-
我不明白为什么不能使用@Before
-
因为据我所知,Before 是在使用 Test 注释的每个方法之前运行的。我的预期行为是不同的。我希望我的自定义代码在标有 Mine 注释的方法上运行。它不能依赖于其他注解。
-
@Before 确实在每个方法之前运行。
标签: java reflection junit aop