[英]test junit for coverage with mock
對不起我的英語不好。 我對 junit 測試有疑問。 客戶要求覆蓋所有類,即使是 dto / model / entity (即使它是錯誤的,我也必須這樣做)。 但我在測試 getter 和 setter 時遇到了麻煩。 我無法覆蓋,我已經測試了許多解決方案,但是覆蓋率為 0 或錯誤,我該怎么辦?
我的 class:
@Entity
public class AnagrafeUser {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
} }
我的 class 測試
public class AnagrafeUserTest {
@InjectMocks
private AnagrafeUser anagrafeUser;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
@Test
public void setanagrafeUser() throws Exception {
when(anagrafeUser.getFirstName()).thenReturn("fistname");
when(anagrafeUser.getLastName()).thenReturn("lastName");
anagrafeUser.setFirstName("fistname");
anagrafeUser.setLastName("lastName");
}
總是出錯,例如最后一次何時:when() 需要一個必須是“模擬方法調用”的參數。 例如:when(mock.getArticles()).thenReturn(articles);
此外,可能會出現此錯誤,因為:
二傳手不覆蓋。
新測試,覆蓋率 100%,但可以嗎?
公共 class AnagrafeUserTest {
@InjectMocks
private AnagrafeUser anagrafeUser;
Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
anagrafeUser.setFirstName("a");
anagrafeUser.setLastName("a");
anagrafeUser.setUserCode("a");
}
Test
public void setanagrafeUser() throws Exception {
assertNotNull(anagrafeUser.getFirstName());
assertNotNull(anagrafeUser.getLastName());
assertNotNull(anagrafeUser.getUserCode());
}
}
你不需要那么掙扎。 首先是簡單的POJO class。 因此您可以使用Assert class 為您提供斷言方法,這對於編寫測試用例很有用。
public void AnagrafeUserTest{
AnagrafeUser anagrafeUser = new AnagrafeUser();
@Test
public void setanagrafeUser(){
anagrafeUser.setFirstName("Harry");
anagrafeUser.setLastName("jackson");
Assert.assertEquals("Harry",anagrafeUser.getFirstName());
Assert.assertEquals("jackson",anagrafeUser.getLastName());
}}
我永遠不會建議您在這里使用 Mockito,因為這只是基本的 POJO class。 Mockito 如果代碼中存在依賴關系(如數據庫 n all),我們將使用它。 在這種情況下,我們使用 Mockito 創建虛擬 object n 執行相關操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.