簡體   English   中英

JUnit =紅色條,即使我的assertEquals是正確的

[英]JUnit = red bar, even if my assertEquals is correct

package dpackage;

public class MyCalculator {

    public int getSum(int a, int b, int sum) {
        sum = a+b;
        return sum;
    }

}

package dpackage;

import junit.framework.TestCase;

public class MyCalculatorTest extends TestCase {
    MyCalculator calc = new MyCalculator();

    protected void setUp() throws Exception {
        super.setUp();
    }

    protected void tearDown() throws Exception {
        super.tearDown();
    }
    protected void getSum(){
        int a=2;
        int b=3;
        int sum = a+b;
        assertEquals(5, calc.getSum(a, b, sum));
    }

}

原因有點微妙。 將代碼更改為以下以獲得綠色條。

  public void testGetSum()

在Junit 3中,測試方法應該從test開始並public

如果可能的話,我會建議你繼續使用Junit 4,它不會施加這樣的限制。

使用注釋,比如@Test@Before@After你的代碼會更簡單,更易於閱讀。

在又路過sum的方法,然后重新計算它看起來是多余的。 堅持在你的getSum方法中計算它。

您沒有任何名稱以“test”開頭的方法。 您可以在MyCalculatorTest類中將“getSum”方法重命名為“testGetSum”。

這個定義有什么意義?

public int getSum(int a, int b, int sum) {
    sum = a+b;
    return sum;
}

只需使用:

public int getSum(int a, int b) {
    return a + b;
}

public void testGetSum() { <-- note test in front
    int a=2;
    int b=3;
    assertEquals(5, calc.getSum(a, b));
}

請注意,在方法前面沒有test的eclipse報告的錯誤是沒有檢測到測試類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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