我正在使用Mockito framework在我的JUnit測試中創建Mock對象。每個模擬知道什麼方法被調用就可以了,所以在我的測試,我可以寫做模擬對象得到重置爲每個測試?
verify(myMock, atLeastOnce()).myMethod();
我想知道的是什麼已經叫這個內部模擬知識會在我的測試中仍然存在?如果它仍然存在,那麼在兩次測試中使用相同的verify
方法時,我可能會得到誤報。
A碼示例
@RunWith(MockitoJUnitRunner.class)
public class EmrActivitiesImplTest {
@Mock private MyClass myMock;
@Before
public void setup() {
when(myMock.myMethod()).thenReturn("hello");
}
@Test
public void test1() {
// ..some logic
verify(myMock, atLeastOnce()).myMethod();
}
@Test
public void test2() {
// ..some other logic
verify(myMock, atLeastOnce()).myMethod();
}
}
模擬狀態被持續 - 無論TEST2會通,因爲TEST1的驗證方法傳遞
模擬狀態被複位 - 如果myMock.myMethod()不是TEST2將失敗稱爲
如果我沒有錯,在所有測試之前設置被調用一次...所以是的,所有的測試都使用相同的模擬對象。您需要在每種測試方法開始時創建該對象 –