我正在使用junit和EasyMock对我正在进行的项目进行单元测试。但是,我遇到了一个问题。我有一些有一个枚举参数的方法。
我在尝试模拟枚举时遇到了java.lang.NullPointerException,而且似乎无法模拟枚举。我在这里找到的更多信息:
http://download.oracle.com/javase/tutorial/java/javaOO/classvars.html
有没有什么好方法可以在不模仿枚举的情况下对此方法进行单元测试?
谢谢!
编辑:PéterTörök是对的!我完全看着我可以为enum插入一些东西。例如:public void methodName(String description,Location buildingLocation){
其中Location是我的枚举,我可以将方法称为:
methodName(“这是我的描述”,Location.DENVER);
答案 0 :(得分:13)
你的enum
包含了什么,你需要嘲笑它?你为什么不能简单地使用可用的值呢?
由于enum
是(应该是)无状态且不可变的,它们应该可以随时用于单元测试,你应该没有实例化它们的问题,它们应该没有(可变的)全局状态并且应该有没有外部依赖,这使得它们难以在单元测试中使用。
上述任何一项失败都是我设计问题的标志,而非单元测试问题。