2016-03-28 58 views
0

當我試圖注入Dao接口時,我得到一個空值。 當我編寫測試用例時,代碼示例。爲什麼我在嘲笑或注入對象時會得到空值。

@Mock 
private ServiceUriLocator serviceLocator; 
@Mock 
private SessionDao sessionDao; 
ActiveSession session; 
AccountData accountdata; 
@InjectMocks 
Account account 

當我使用方法裏面像

@Test 
public void testActivate() 
{ 
    Response response=account.activate(accountdata). 
} 

private Accountdata accountdata(){ 
accountdata.setFirstName("Employee_name"); 
accountdata.LastName("Employee_Last_Name"); 
return accountdata; 
    } 

在上面的代碼賬戶價值這上面的代碼是零,這就是爲什麼我得到空指針異常。 任何人都可以驗證爲什麼我得到null值來注入模擬值。

回答

0

使用模擬框架執行測試用例有很多因素。

  1. 是跑步者設置?你在執行哪一個跑步者? 它必須是MockitoJunitRunner,它有助於與Mocks一起運行
  2. when語句寫在同一個模擬對象上嗎? 這必須與相同的模擬對象匹配
  3. 輸入字符串/數據是否與when語句匹配? 。 這必須是相同的輸入

時(service.execute( '喜'))thenReturn();

是從

時(service.execute( '你好'))不同thenReturn();

  1. 哪裏when寫? setup - @Before級別或測試方法級別?

書面全球陳述適用於所有的測試方法,所以一定要小心,而你做的@Before方法when語句。

這些是一些調試點。

+0

這些是調試因素什麼是空值? – Ankit

+0

@Ankit,這裏的要點是檢查所有這些步驟。考慮重新格式化您的問題以添加更多細節。 – VinayVeluri