【问题标题】:Where do I put my stubs?我把存根放在哪里?
【发布时间】:2013-09-21 02:29:28
【问题描述】:

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

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

我尝试过的事情:

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

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

非常感谢。

【问题讨论】:

  • 存根与测试一起使用,无论是在同一文件夹中还是在其他文件夹中。

标签: java unit-testing junit stub


【解决方案1】:

由于您给出的原因,第三个选项绝对比其他两个更好。我喜欢参考the Maven directory structure during times like this,它似乎与您的第三个选项没有任何不同。

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


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

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

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

【讨论】:

    猜你喜欢
    • 2011-03-18
    • 2012-10-14
    • 2020-09-30
    • 2016-08-25
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多