1 回答

TA貢獻1812條經驗 獲得超5個贊
編輯:
對于 JUnit5 和 mockito,請參考這個答案:
How to use Mockito with JUnit5
我也更新了下面的示例。
Edit2:由于 TO 沒有說明正在使用哪個 JUnit 版本或 mockito 版本,如果仍然不起作用,我將嘗試編輯答案。
感謝您@helospark
指出這一點。
使用 Runner 或 Rule 不適用于 JUnit5,因此可能應該使用 Mockito Version 2。
使用 Mockito Version 1 時,需要顯式調用 init 方法。
@BeforeEach
public void setUp() {
MockitoAnnotations.initMocks(this);
}
對于 Junit5 和最新的 Mockito 版本 (2.27),測試類應該如下所示:
class InnerClass {
public void doSomething(String fileName) {
}
}
class SomeClass {
InnerClass innerClass;
public boolean doSomething(String fileName) {
innerClass.doSomething(fileName);
return true;
}
}
@ExtendWith(MockitoExtension.class)
class SomeClassTest {
@InjectMocks
SomeClass someClass;
@Mock
InnerClass innerClass;
@Test
public void test() {
someClass.doSomething("test");
Mockito.verify(innerClass, Mockito.times(1)).doSomething(Mockito.any());
}
}
添加回答
舉報