我正在尝试在eclipse中学习junit测试,并且我试图从简单的事情开始。我用2个方法编写了一个基本程序,一个加法和减法方法,它们都有2个参数。所以我尝试仅测试add函数,测试看起来像这样
import static org.junit.Assert.*;
import org.junit.Test;
public class addtest {
@Test
public void testAdd() {
class1 calc = new class1();
int expected = 7;
int actual = class1.add(3, 4);
assertEquals("adding 3 and 4 ", expected, actual);
expected = 15;
actual = class1.add(5, 10);
assertEquals("adding 5 and 10 ", expected, actual);
}
}
它按我的意愿工作。
但是当我试图实施第二次减法测试时,我注意到它似乎从未测试过那部分。我甚至尝试过第二种测试方法,以防我的减法方法不正确。这就是我最近的测试。
import static org.junit.Assert.*;
import org.junit.Test;
public class addtest {
@Test
public void testAdd() {
class1 calc = new class1();
int expected = 7;
int actual = class1.add(3, 4);
assertEquals("adding 3 and 4 ", expected, actual);
expected = 15;
actual = class1.add(5, 10);
assertEquals("adding 5 and 10 ", expected, actual);
}
public void testMinus() {
class1 calc = new class1();
int expected = 0;
int actual = class1.add(12, 4);
assertEquals("subtracting 4 from 12", expected, actual);
}
}
我注意到测试testMinus从不做任何事情,断言是否属实。我的实施有问题吗?我已经尝试将源文件夹作为junit测试运行,没有任何修复。
非常感谢您的帮助
编辑:我尝试注释掉第一个测试,所以我的测试函数里面只有testMinus,现在它正在测试第二个方法。在完成第一种方法后,程序是否有理由停止测试?答案 0 :(得分:4)
在你的minusTest方法之上添加@Test
。它看起来像
@Test
public void testMinus() {
class1 calc = new class1();
int expected = 0;
int actual = class1.add(12, 4);
assertEquals("subtracting 4 from 12", expected, actual);
}
答案 1 :(得分:0)
`
@Test
public void testMinus() {
class1 calc = new class1();
int expected = 0;
int actual = calc.add(12, 4); // Issue with current implementation, method should be called with instance of a class.
assertEquals("subtracting 4 from 12", expected, actual);
}
`
所有Junit测试都应该使用@Test进行注释。