Cof*_*nky 2 java junit easymock mocking powermock
在我的测试中非常奇怪的行为.
public class MyTestclass {
@Before
void setUp(){
//do some setup, but hu i get called twice
//here i do some try catch thing to get the stacktrace...
}
void testOnlyOneTest(){
//make the testing, i get called only once
}
@After
void tearDown(){
//do some destroy things,... i get called twice too
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
1)
MyTestClassTest.setUp() line: 85
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object...) line: 597
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner(MethodRoadie).runBefores() line: 129
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner(MethodRoadie).runBeforesThenTestThenAfters(Runnable) line: 93
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(Method, Object, Runnable) line: 294
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(Runnable) line: 282
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner(MethodRoadie).runTest() line: 84
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner(MethodRoadie).run() line: 49
PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(Method, RunNotifier) line: 207
PowerMockJUnit44RunnerDelegateImpl.runMethods(RunNotifier) line: 146
PowerMockJUnit44RunnerDelegateImpl$1.run() line: 120
ClassRoadie.runUnprotected() line: 34
ClassRoadie.runProtected() line: 44
PowerMockJUnit44RunnerDelegateImpl.run(RunNotifier) line: 118
JUnit4TestSuiteChunkerImpl.run(RunNotifier) line: 102
PowerMockRunner(AbstractCommonPowerMockRunner).run(RunNotifier) line: 53
JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) line: 46
TestExecution.run(ITestReference[]) line: 38
RemoteTestRunner.runTests(String[], String, TestExecution) line: 467
RemoteTestRunner.runTests(TestExecution) line: 683
RemoteTestRunner.run() line: 390
RemoteTestRunner.main(String[]) line: 197
2)
MyTestClassTest.setUp() line: 85
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object...) line: 597
WhiteboxImpl.performMethodInvocation(Object, Method, Object...) line: 2014
WhiteboxImpl.doInvokeMethod(Object, Class<?>, String, Object...) line: 885
WhiteboxImpl.invokeMethod(Object, String, Object...) line: 713
Whitebox.invokeMethod(Object, String, Object...) line: 401
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod() line: 305
MethodRoadie$2.run() line: 86
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner(MethodRoadie).runBeforesThenTestThenAfters(Runnable) line: 94
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(Method, Object, Runnable) line: 294
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(Runnable) line: 282
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner(MethodRoadie).runTest() line: 84
PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner(MethodRoadie).run() line: 49
PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(Method, RunNotifier) line: 207
PowerMockJUnit44RunnerDelegateImpl.runMethods(RunNotifier) line: 146
PowerMockJUnit44RunnerDelegateImpl$1.run() line: 120
ClassRoadie.runUnprotected() line: 34
ClassRoadie.runProtected() line: 44
PowerMockJUnit44RunnerDelegateImpl.run(RunNotifier) line: 118
JUnit4TestSuiteChunkerImpl.run(RunNotifier) line: 102
PowerMockRunner(AbstractCommonPowerMockRunner).run(RunNotifier) line: 53
JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) line: 46
TestExecution.run(ITestReference[]) line: 38
RemoteTestRunner.runTests(String[], String, TestExecution) line: 467
RemoteTestRunner.runTests(TestExecution) line: 683
RemoteTestRunner.run() line: 390
RemoteTestRunner.main(String[]) line: 197
Run Code Online (Sandbox Code Playgroud)
为什么我的setUp被调用两次的任何想法?
我在setUp中做了一些嘲弄,经过验证后我得到了2次调用1次,所以我的测试失败了.
我正在使用powermock 1.4.8,junit 4.4和easymock框架
你的班级是否扩展了TestCase?它似乎不在示例中,但我只是想想可能导致这种情况的原因.如果它没有那么它会忽略注释,并考虑每一个字开头的方法测试的测试用例导致你可能有更多的测试比你想象的.
| 归档时间: |
|
| 查看次数: |
3992 次 |
| 最近记录: |