的測試Servlet 3.0批註基礎的Servlet與embbedded的Tomcat 7我想寫一個JUnit測試來驗證一個tomcat 7的行爲,這是關係到這個Servlet 3.0批註(@WebServlet
,@ServletSecurity
)。如何在JUnit
我到目前爲止是這樣的測試:
@Test
public void testDoGet()
throws ServletException, LifecycleException, IOException {
Tomcat tomcat = new Tomcat();
tomcat.setPort(8080);
Context ctx = tomcat.addWebapp("/",
new File("target").getAbsolutePath());
Tomcat.addServlet(ctx, "hello", HelloServlet.class.getName());
ctx.addServletMapping("/hello", "hello");
tomcat.start();
ByteChunk chunk = new ByteChunk();
int responceCode = getUrl("http://127.0.0.1:8080/hello",chunk);
System.out.println(responceCode + ": " + chunk.toString());
tomcat.stop();
}
這個測試工作,但它並沒有支付給註釋任何方面。
很明顯,這個測試並沒有對HelloServlet中的註釋給予任何尊重。 但我不知道如何「註冊」一個servlet,以便使用基於註釋的配置。任何人都可以給我一個提示如何建立一個測試,做到這一點?
在tomcat-7.0.8-> 7.0.11中有一個錯誤,其中@servletSecurity被忽略。也許你的測試是正確的,你沒有任何事情要做,你只是觸發錯誤,你測試失敗,因爲它應該。 http://www.mail-archive.com/[email protected]/msg87337.html – Jean
@Jean:我知道這個錯誤,但我使用的是7.0.11。 – Ralph