在Eclipse中为所有JUnit测试设置环境变量

时间:2010-08-12 22:31:23

标签: java eclipse junit

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

我可以通过Run Configurations在Eclipse中设置环境变量,但是我希望每当运行JUnit测试时都会发生这种情况(以防万一)。

这在Eclipse中是否可行?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

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

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

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