【发布时间】:2019-02-27 12:03:01
【问题描述】:
在JUnit 中是否有一个地方可以定义要测试的方法应该如何流动?
我有一个名为Location 的课程,我已经为其编写了一个测试。除了在testSetName 之前调用的testGetName 之外,所有测试都通过了。
它使测试失败。我该如何解决这个问题?
public class LocationTest {
Location instance;
@Before
public void setUp() {
instance = new Location();
}
@Test
public void testGetLongitude() {
System.out.println("getLongitude");
double expResult = 0.0;
double result = instance.getLongitude();
assertEquals(expResult, result, 0.0);
}
@Test
public void testSetLongitude() {
System.out.println("setLongitude");
double longitude = 0.0;
instance.setLongitude(longitude);
}
@Test
public void testSetName() {
System.out.println("setName");
String name = "";
instance.setName(name);
}
/**
* Test of getName method, of class Location.
*/
@Test
public void testGetName() {
System.out.println("getName");
String expResult = "Mock Location";
String result = instance.getName();
assertEquals(expResult, result);
}
}
【问题讨论】:
-
天哪,不要这样做。测试您的班级所需的行为。不要为每个单独的方法编写测试。坦率地说,为 getter 和 setter 编写测试确实不能很好地利用您的时间。
-
@DawoodibnKareem,我 100% 同意最后一点,尤其是当我们有像
auto-value这样的东西专门设计用于消除编写值类的所有冗余的需要时