【问题标题】:What is the recommended way to share resources between source code and tests in java?在java中的源代码和测试之间共享资源的推荐方法是什么?
【发布时间】:2016-05-11 15:41:36
【问题描述】:

我在src/main/resources 文件夹中有一些文件供我正在处理的应用程序使用,我将其中几个复制到src/test/resources 文件夹中,以便我的测试可以轻松访问它们。我想知道这是否是单元测试的最佳实践?例如,我可以从src/main/resources 加载资源,这样如果有人更改源代码,我的测试就会失败。这方面的最佳做法是什么?

【问题讨论】:

  • 除非有充分的理由复制文件,否则我将拥有一份副本。 IE。使用src/main/resources,除非它们不应该被释放。
  • main/resource 中的文件内容是静态的吗?它会改变吗?如果我有一个测试,其中返回数据的断言是硬编码的,例如,一个测试从文件中读取的字符串是我期望的,我必须在断言中硬编码预期的字符串。如果 main/resources 下的文件发生更改,我的测试将开始失败。测试的一般方法是测试环境在我每次运行时都应该保持不变。
  • 如果资源属于主代码并且你只在测试中使用它来检查主代码,你应该把它保存在src/main/resourcessrc/test/resources 仅用于测试。

标签: java maven unit-testing resources


【解决方案1】:

src/main/resources 中的文件在测试期间可用,我刚刚确认这是我的情况。您可以通过将这些资源添加到 src/test/resources 来覆盖这些资源,但据我所知,您无法将它们从测试中隐藏起来,因此您的系统看起来好像存在配置错误。

【讨论】:

    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 2023-03-09
    • 2013-04-26
    • 2021-12-19
    • 1970-01-01
    • 2017-03-28
    相关资源
    最近更新 更多