2

如果您测试 Car 类,并希望在其上创建一个返回座位数的方法。如果不需要的话,只写car.addSeat(new Seat())多次而不在座位上实际设置一些数据就足够了吗?该方法看起来像:

public int numberOfSeats() {
    return seats.size();
}

鉴于席位是席位列表。或者即使不需要,您也会在座位上填写数据?您是否应该始终尽量减少编写测试的工作量?

4

2 回答 2

3

您应该考虑使用模拟。通过模拟,您可以使用期望控制未测试对象的行为方式。

例如 when(seat.getSomeProperty()).thenReturn("some value")

但是,如果您不需要该值,则可以将期望从代码中排除。这样可以在不重写测试的情况下更新代码,并且维护您的测试要简单得多。

结帐 Mockito https://code.google.com/p/mockito/

于 2013-04-08T15:42:34.723 回答
0

我有两种方法。

  1. 准确定义您要测试的内容,您将确切知道需要填写哪些数据。在您的示例中,没有必要填补座位。

  2. 如果您想测试的不仅仅是 numberOfSeats,您可以使用 setUp 和 tearDown 为每个测试创建可重用的数据集。JUnit 在每次测试之前运行 setUp,之后运行 tearDown。

于 2013-04-08T15:47:57.817 回答