我正在开发一个程序,该程序将为初学者程序员提供一种游戏。我打算提供一个字段,用户可以根据需要编写代码(方法,类...)。当用户想要提交代码时,我会将文本字段的内容复制到.java文件中,调用编译器来编译这个类,然后我想用jUnit测试代码是否工作正常。使用jUnit测试尚未创建的类/对象
那么,我知道jUnit是用于开发目的,但我认为它可能是非常有用的在这种情况下执行它。
现在的问题是,当我需要编译我的程序时,应该被测试的类(用户的代码)不会在那里。所以我不能只是叫
assertEquals("Wrong sum", 6, Foo.sum(4, 2));
,因为它不会知道Foo类是什么,因为它永远不会在compilatoin的时间在那里 - 在用户运行应用程序,并开始编码之前。
我想我可以创建一个虚拟类,只是为了编译,但是当我需要真实的东西时,我将无法替换文件或写入另一个文件,如Foo2.java,因为FooTest.java只能用对象Foo操作....
我真的很感激你的建议家伙!我能做些什么来处理这种情况?
谢谢:)
你有没有考虑过使用mockito - http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html – nbz 2014-10-08 16:59:12