大更新: 有沒有人遇到過這個問題?Junit測試在包上運行失敗,但在文件上運行時成功
我在Maven項目中使用JUnit 4.5和Mockito 1.7。
我在包testCaseFolder中有testCaseA.java。 如果我打開testCaseA.java,右鍵單擊代碼,選擇「Run as」 - 「Junit test」就可以了。 但如果我右鍵單擊包,選擇 「運行方式」 - 「JUnit測試」,它將會失敗:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Misplaced argument matcher detected!
Somewhere before this line you probably misused Mockito argument matchers.
For example you might have used anyObject() argument matcher outside of verification or stubbing.
Here are examples of correct usage of argument matchers:
when(mock.get(anyInt())).thenReturn(null);
doThrow(new RuntimeException()).when(mock).someVoidMethod(anyObject());
verify(mock).someMethod(contains("foo"));
at testCaseA.setUP(testCaseA.java:33)
第33行是://MockitoAnnotations.initMocks(this);***//it said this is error***
下面是代碼:
SomeService service;
@Mock
private CommonService commonService;
@Mock
public Errors errors;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);***//it said this is error***
}
@Test
public void testvalidate() {
//fail even here is empty
}
一些挖後,我發現這個問題,我只是不知道爲什麼,以及如何解決。問題不在於MockitoAnnotations.initMocks(this);問題是模擬,@Mock私有CommonService commonService;如果我不嘲笑任何東西,它會被發現。如果在這裏嘲笑,那就錯了。 – Jack
我把你的編輯回來了,因爲有一個答案與你的原始版本保持了上下文。將來,避免進行編輯,使問題上的現有答案無效。這可能會導致其他有類似問題的人對您的具體錯誤是什麼以及您如何解決問題感到困惑。 – Makoto