2013-06-21 21 views
1

驗證jofitit與withCapture捕獲對象不太合適。任何幫助?JMockit withCapture無法正常工作

@Injectable 
private API _api; 

@Tested 
private ServiceImpl _service; 

@Test 
public void test(){ 
    new Verifications() { 
     { 
      VirtualUser user; 
      _api.add(user = withCapture()); 
      Assert.assertEquals("1", user.getId()); 
      Assert.assertEquals("user", user.getUsername()); 
     } 
    }; 
    _service.add("1","user"); 
} 

異常:user.getId()中的空指針。

+0

你能展示一個可執行測試嗎?該片段不顯示'_api'被嘲笑的地方。 –

+0

@Rogério在這裏被嘲笑。 –

+0

謝謝,我現在看到了錯誤(應該在...之前看到它)。 –

回答

8

驗證塊(new Verifications() { ... })在已經執行了待測試的代碼之後應該會出現。在示例測試中,驗證在之前執行,因此當時沒有任何東西可以捕獲到變量user中。因此,它仍然是null。只需將驗證塊移到測試方法的末尾即可。