簡體   English   中英

如何獲得 Java 代碼覆蓋率的全面覆蓋? Junit 5 Eclipse IDE

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM