2

我一直在使用我的abstract类的存根实现来进行测试。目前,我的单元测试位于test我的目录旁边的src目录中。

我想知道在哪里放置测试中使用的任何存根是否有最佳实践。我一直在尝试几件事,但无论我做什么,我的一部分似乎都永远受到干扰。

我尝试过的事情:

  • 在使用它们的实际单元测试中声明存根实现。当您必须在多个 JUnit 类中使用存根时,这会变得平淡无奇。
  • 将存根放入与其父类相同的包中。这似乎是一个糟糕的主意,因为它突然具有测试代码污染src.
  • 将存根类保存在test包结构中的某个位置。这似乎是最合理的选择,但我不确定最好的方法是什么。

请记住,我可能想多了。是否有任何关于最佳实践的信息可以让我放心?切换到模拟框架是解决这个困境的方法吗?

非常感激。

4

1 回答 1

2

由于您给出的原因,第三个选项绝对比其他两个更好。我喜欢在这样的时候参考Maven 目录结构,它似乎与您的第三个选项没有什么不同。

我所做的是将存根创建为测试本身的内部类。一旦这变得太乱或需要重用,我将存根放在与抽象类相同的包中,但在test目录下。


值得知道的是,许多项目演变为具有像这样工作的“Builder”对象:

Person person = new PersonBuilder().withName("John Doe").withDefaultAddress().build();

您这样做的原因是因为有时Person需要根据您正在测试的内容以多种不同的方式创建 a。只有一个PersonStub可能还不够。

于 2013-09-16T20:17:24.137 回答