Java 如何区分测试之前的JUnit@和测试之间的区别
我希望能够区分在JUnit@Before方法中执行的代码与在实际测试中执行的代码之间的差异 我已经研究过扩展TestWatcher,但是starting(Description)方法是在@before开始执行之前调用的,而不是在测试开始之前调用的 理想情况下,我正在寻找这种情况:Java 如何区分测试之前的JUnit@和测试之间的区别,java,unit-testing,automated-tests,junit4,Java,Unit Testing,Automated Tests,Junit4,我希望能够区分在JUnit@Before方法中执行的代码与在实际测试中执行的代码之间的差异 我已经研究过扩展TestWatcher,但是starting(Description)方法是在@before开始执行之前调用的,而不是在测试开始之前调用的 理想情况下,我正在寻找这种情况: A: [arbitrary code] B: JUnit @Before method C: [more arbitrary code] D: JUnit @Test method 任何帮助或指导都非常感谢:)如果您
A: [arbitrary code]
B: JUnit @Before method
C: [more arbitrary code]
D: JUnit @Test method
任何帮助或指导都非常感谢:)如果您试图根据测试是初始化还是运行来动态改变代码行为,您可以尝试获取当前线程的堆栈跟踪,并逐步遍历帧,直到找到一个使用
@Test
或@Before
(或@BeforeClass
)注释方法的帧
或者,您可以创建一个新的测试类运行程序(可能扩展
BlockJUnit4ClassRunner
),并使用@RunWith(MyTestClassRunner.class)
注释您的测试类以使用它。这里有一篇关于如何做到这一点的好文章:你为什么要这样做?你说的“区别”是什么意思?这两个地方的代码是否相同?您的意思是希望代码在运行时知道从何处调用它?或者你只是说你遇到了一个异常,或者什么,你不知道问题出在哪一块代码中?