GAE,Log行在单元测试中抛出nullpointer异常

时间:2014-03-19 19:36:08

标签: google-app-engine junit

运行单元测试时,我的日志行会抛出nullpointer异常。我在本地服务器上运行或上传到appengine时没有错误。我忘了在某处包含测试库吗?

java.lang.NullPointerException
    at javax.servlet.GenericServlet.getServletContext(GenericServlet.java:160)
    at javax.servlet.GenericServlet.log(GenericServlet.java:254)
    at se.stuff.servlet.MyServlet.doGet(MyServlet.java:14)
    at se.stuff.MyServletTest.test(MyServletTest.java:14)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ...

我的servlet:

public class MyServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    // Do stuff...
    log("log stuff");
}

}

我的测试:

public class MyServletTest {    
    @Test
    public void test() throws IOException {
        MyServlet s = new MyServlet();
        s.doGet(null, null);
    }
}

1 个答案:

答案 0 :(得分:0)

测试调用s.doGet(null, null)中的空值导致NullPointerException。 servlet可能很好,但测试没有意义。我建议废弃该测试并首先将一些内容添加到doGet中,然后使用QUnit从外部测试您的servlet。