0
我是单元测试的初学者。嘲笑类,Java
我想测试MyClass。在Apache Tomcat上运行的应用程序。
类:
MyClass extends Report {
public MyClass() {
super(); //exception in JUnit
}
public void doSomething() {
GetDataFromSQL(params); // I want to test this
}
}
Report {
public Report(){
//this throws null pointer exception in my JUnit tests:
ServletContext sc = EnviromentWrapper.getServletContext();
}
//necessary method for MyClass. This method uses also other methods in this class.
public AnyData GetDataFromSQL(params){}
}
你能很快解释我如何嘲笑报告 - 这是复杂的阶级,我想保持原来的代码GetDataFromSQL方法。
或者我可能需要对Tomcat做些什么吗?
我想测试MyClass,而不是报告(不是我的课程) – liquide
@liquide然后用mockito,EasyMock等任意一个模拟库来模拟报告。您明确表示您希望*保留“复杂的代码”在'GetDataFromSQL'中,如果没有进一步的信息很难解释。 –
@DaveNewton - 我认为这是一种“静态”方法。这会让事情变得复杂一些,你可以使用功能模拟来设置返回值,然后“回放”它们,但普通的嘲讽无助于你。 –