【发布时间】:2014-01-25 18:12:56
【问题描述】:
在为对象内的实例变量的 setter 和 getter 创建测试用例时。最好的方法是什么?在这里,我在测试中使用 get 和 set 方法。这会是糟糕的测试策略吗?
/**
* Test of setFlightNumber method, of class Flight.
*/
@Test
public void testSetFlightNumber() {
System.out.println("setFlightNumber");
int flightNumber = 1000;
Flight instance = new Flight();
instance.setFlightNumber(flightNumber);
// TODO review the generated test code and remove the default call to fail.
assertEquals(instance.getFlightNumber(), flightNumber);
}
/**
* Test of getFlightNumber method, of class Flight.
*/
@Test
public void testGetFlightNumber() {
System.out.println("getFlightNumber");
Flight instance = new Flight();
int expResult = 1000;
instance.setFlightNumber(1000);
int result = instance.getFlightNumber();
assertEquals(expResult, result);
}
【问题讨论】:
-
你为什么要费心测试setter和getter?那将是我的第一个问题;除非您的 setter/getter 做的比他们所说的要多(无论如何这很糟糕),否则您应该依赖于对字段的分配不会失败的事实。此外,具有讽刺意味的是,您正在测试它们是否以相同的方法工作,所以如果您要测试它,您只需要一种方法(因为,如果没有反射,您将无法取回被设置但没有得到它)。
-
这是实验室的要求。我刚刚在阅读,许多人认为这是毫无意义的。但是,可以说只是为了测试而需要对其进行测试。在 setFlightNumber 中使用 getFlightNumber 方法可以吗?
标签: java unit-testing junit