在JUnit
中,有一个地方可以定义应如何测试的方法?
我有一个名为Location
的类,已经为此做了测试。所有测试均通过testGetName
之前被调用的testSetName
。
这会使测试失败。我该如何解决?
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);
}
}
答案 0 :(得分:3)
简短的回答:没有。
长答案:很确定这里已经有一个关于此主题的问题。
通常,测试不应保持测试之间的状态,因此,如果您有依赖于setter测试的吸气剂测试,则可能是您做错了测试。
如果要测试吸气剂和吸气剂,请一次完成所有测试;即通过使用getter测试设置器,如果两项操作均成功,则getter和setter可以正常工作!
要回答您的问题,JUnit对此提供了一种帮助,可以在这里找到:
https://github.com/junit-team/junit4/wiki/test-execution-order
简而言之,您需要对测试进行排序的选项是依赖于 JVM指定的顺序,还是方法名称的按字典顺序排序。这些并不能解决您的问题,因为您似乎想要一个非常特定的订单。即set
-> get