![](/img/trans.png)
[英]How to get full coverage for Java Code Coverage? Junit test cases
[英]How to get full coverage for Java Code Coverage? Junit 5 Eclipse IDE
我正在為一門課程做作業,我需要全面了解這種方法
public void ourcompanyname(String companyName) {
if (companyName == ("")) {
throw new AirlineException("Warning. The company must have a name !");}
---->這是構造函數
public String getCompanyName() {
return companyName;
}
/**
* @param companyName the companyName to set
*/
public void setCompanyName(String companyName) {
this.companyName = companyName;
----->這是我用的測試
public void testSet() throws AirlineException {
airlinecompany.setCompanyName((""));
Assertions.assertEquals((""),airlinecompany.getCompanyName());
Assertions.assertThrows(AirlineException.class,()->airlinecompany.ourcompanyname(("")));
----->問題是我在測試這段代碼時得到了 50% 的覆蓋率。 ("") 字符串代表一個空白字段,因此當您不填寫名稱時,您會得到一個 AirlineException。 但我也想測試它是否像“FLYAIR”這樣的字符串,它不應該拋出異常。 我有哪些選擇? 更好地為空白字段 ("") 編碼還是僅更改此字段?
提前多謝!
嘗試這樣的事情:---
@Test
public void testUsernameIsNull() {
Throwable exception = Assertions.assertThrows(
AirlineException.class, () -> {
Airlinecompany airlinecompany = new Airlinecompany();
airlinecompany.setName("");
}
);
Assertions.assertEquals("Warning. The company must have a name !", exception.getMessage());
if(true){
Airlinecompany airlinecompany = new Airlinecompany();
airlinecompany.setName("FLYAIR");
Assertions.assertEquals(("FLYAIR"),airlinecompany.getCompanyName());
}
}
希望它可以解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.