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 - 我認爲這是一種「靜態」方法。這會讓事情變得複雜一些,你可以使用功能模擬來設置返回值,然後「回放」它們,但普通的嘲諷無助於你。 –