【问题标题】:Setting Environment Variables for All JUnit Tests in Eclipse在 Eclipse 中为所有 JUnit 测试设置环境变量
【发布时间】:2010-08-12 22:31:23
【问题描述】:

我正在尝试设置一些使用数据库的单元测试。我想在开发人员的计算机上使用测试数据库,而不是在生产数据库上。我现在采用的方法是在连接到数据库时检查环境变量,如果该变量存在则连接到本地而不是生产环境变量。

我可以通过运行配置在 Eclipse 中设置环境变量,但我希望在运行 JUnit 测试时执行此操作(以防万一)。

这在 Eclipse 中可行吗?

【问题讨论】:

    标签: java eclipse junit


    【解决方案1】:

    为什么不将数据库连接注入到需要测试的逻辑中,而处理启动代码中的环境变量(通常不需要单元测试)?

    在测试中使用环境变量通常表明配置在您的代码(IME)中发生得太深。在可能的情况下,我发现通过依赖注入构建具有所需一切的对象要好得多,并将该代码与配置代码分开,从而确定注入的内容。

    【讨论】:

    • Hmmmmm.... 可能需要进行一些重构才能完成这项工作...尽管它似乎确实比我目前的混合配置和逻辑更好...
    【解决方案2】:

    我认为硬编码连接信息或测试/生产切换不是最好的主意。

    基本上,我们在属性文件中有数据库连接信息。在单元测试中,我们使用另一个包含测试数据库连接信息的属性文件。 (轻量级内存数据库可能是单元测试的最佳选择。)

    单元测试通常有自己的设置装置,为每个测试用例构成一个基本环境,因此使用专用属性文件应该不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 2016-08-11
      • 2018-01-16
      • 2015-09-20
      • 1970-01-01
      相关资源
      最近更新 更多