我有两个.class文件,应该对它们进行黑盒测试。这些在一个包one.two.three
中。我的测试也在同一个包中。同一个包中还有第三个.class文件,其目的是为我要测试的Orders
类保存一个枚举变量。在eclipse中,我可以通过直接导入枚举(例如(来让Orders
的junit测试工作
import one.two.three.Orders.ShippingMethod;
如果我尝试使用Ant或通过命令行执行此操作,我会得到错误"package one.two.three.Orders不存在"。如果我将进口对账单更改为
import one.two.three.*;
Ant、Eclipse和终端找不到我拥有的任何类。我需要使用Ant编译并运行测试用例。课程在bin/one/two/three
。如有任何帮助,我们将不胜感激,谢谢。
导入Orders
,因为它是类,并且假设ShippingMethod
是该类中的枚举,引用其类型的正确方法是Orders.ShippingMethod
。
在Eclipse中,尝试导入类的内部类型有时会产生奇怪的效果。这可能是因为Eclipse没有使用jdk中打包的javac
编译器,而Ant使用了(它必须使用,因为Ant没有提供嵌入式编译器(。
import one.two.three.Orders;
public class Whatever {
private Orders.ShippingMethod shipMethod;
}
这应该适用于所有事情,因为这是正确的方法
import one.two.three.Orders.ShippingMethod;
很容易混淆大多数编译器,因为没有
one/two/three/Orders/ShippingMethod.class
文件,这意味着类加载器在运行时找不到它。
我敢打赌,这是Eclipse嵌入式编译器中的一个错误,我已经看到了很多。从好的方面来看,Eclipse嵌入式编译器的存在是为了在代码编辑和Eclipse之间提供更快、更紧密的集成。从阴暗面来看,这意味着有时Eclipse编译器和javac
编译器不同。如果有疑问,javac
编译器可能是正确的。
您需要设置类路径。
我不知道Eclipse的具体情况(我使用NetBeans(,但我点击了Libraries -> add JAR/Folder
。
对于命令行,您需要指定类路径
java -cp path/to/my/files (...)