2012-09-20 192 views
-1

這裏是我的測試類.....的Mockito測試春季

@RunWith(SpringJUnit4ClassRunner.class) 
    @ContextConfiguration(loader=AnnotationConfigContextLoader.class) 
    public Testclass { 
    @Autowired 
    private VClasss vclass; 
     ..... 
     ..... 

    @Before 
    public void setup() { 
     //mockito.when.(vClass.isvalid()).thenReturn(true); 

    } 
    @After 
    public void verify({ 
    Mockito.verify(vCLass, VerificationModeFactory.times(1)).isValid(); 
    Mockito.reset(); 
    } 


    @Test 
    public void test1() { 
    //set up test which will call the mock isValid method 

    } 

    @Test 
    public void test1() { 
    //set up test which will call the mock isValid method 
    } 


    @Configuration 
    static class configurationForTest { 
    @Bean 
    public VClass vClass() { 
     return mockito.mock(VClass.class); 
    } 
    } 

我的問題是,當我設置了,先測試通過,爲驗證是否正確的isValid被調用一次,但第二失敗,因爲現在驗證抱怨詢問isValid被調用兩次..我期望在mockito上的重置方法重置每次測試的呼叫計數afetr ..

有沒有人有任何建議?

回答

2

你不通過任何模擬重置。該行應該是

Mockito.reset(vClass); 
+0

是否可以重置個別方法的計數?用你提供的整條模擬線重新設置。 – svlada

+1

AFAIK,no。重置模擬已經是一種氣味了。重置個別方法會更加臭。 –