![](/img/trans.png)
[英]JUnit assertEquals() is failing even though they appear to be equal
[英]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.