如何防止单元测试从测试项目中使用util?

时间:2013-11-05 21:36:45

标签: java eclipse unit-testing

我正在使用eclipse,我有两个项目,project1和project1-test。以下是我的项目的示例布局:

project1  
-src  
--my.package  
----MyClass.java  
--my.package.util  
----util.java  

project1-test  
-src  
--my.package  
----MyClassTest.java  
--my.package.util  
----util.java  

MyClass.java对project1中的util.java进行静态调用。 MyClassTests.java正在测试MyClass.java。当测试类运行时,它会失败并抱怨MyClass.java引用了util.java中不存在的方法。在project1下,被引用的方法存在于util.java中,但是在project1-test下,该方法没有。

当我运行MyClassTests.java时,从MyClass.java引用的util.java来自project1-test,它应该是project1。有没有办法让MyClass.java在运行MyClassTest.java时不从project1-test引用util.java?

1 个答案:

答案 0 :(得分:0)

这似乎是一个类路径问题。在两个项目中都有一个名为my.package.util.util的类,当您在project1-test中运行代码时,它首先被Eclipse放在类路径上。

您最简单的解决方案是重命名测试项目中的util类。或者甚至只是把它放在一个不同的包装中。

另一个解决方案是操纵Eclipse正在使用的类路径,但这意味着始终在project1中使用project1-test之前的类。