如果您测试类Car,并希望在其上创建一个返回席位数的方法。如果不需要在座位上实际设置一些数据,只需多次写car.addSeat(new Seat())
就足够了吗?该方法看起来像:
public int numberOfSeats() {
return seats.size();
}
鉴于座位是一个席位列表。或者即使不需要座位上的数据也会填写?您是否应该始终努力将测试工作保持在最低限度?
答案 0 :(得分:3)
你应该考虑使用模拟。通过模拟,您可以控制未被测试的对象如何使用期望行为。
e.g。 when(seat.getSomeProperty())。thenReturn(“some value”)
但是如果你不需要这个值,你可以将期望从你的代码中删除。这样可以在不重写测试的情况下更新代码,并且维护测试更加简单。
Checkout Mockito https://code.google.com/p/mockito/
答案 1 :(得分:0)
我有两种方法。
准确定义您要测试的内容,您将确切知道需要填充哪些数据。在你的例子中,填补席位不是必要的。
如果您想测试的不仅仅是numberOfSeats,您可以使用setUp和tearDown为每个测试创建一组可重复使用的数据。 JUnit在EACH测试之前运行setUp,之后运行tearDown。