私は現在、私がJavaで持っているHttpServletクラスのためにユニットテストを設定しようとしています。しかし、Jettyのドキュメントは一種のものがなく、私はちょっと立ち往生しています。サーブレットでgetContextPath()を使って出力したので、contextPathが/ hbcであることはかなり確かです。しかし、私は、a)addServlet()メソッドの第2パラメータはどのようなものでなければならないのか、そしてb)URIが何であるべきなのか、はっきりしていません。JettyはJavaのステータスコードを常に返すHttpServlet
ステータスコードは400に戻り、内容はnullです。私は正しい場所を指していないからです(しかし、それが404につながると思うでしょう)か、何か他のものがない場合は、私は確信していません。
サーブレットには、init()、processRequest()、doGet()、およびdoPost()メソッドがあります。
思考?
public class HBCUnitTests extends TestCase {
private ServletTester tester;
@BeforeClass
public void setUp() throws Exception {
tester = new ServletTester();
tester.setContextPath("/hbc");
tester.addServlet(HubCommServlet.class, "/");
tester.start();
}
@AfterClass
public void tearDown() throws Exception {
tester.stop();
}
@Test
public void test() throws Exception {
HttpTester request = new HttpTester();
request.setMethod("POST");
request.setVersion("HTTP/1.1");
request.setURI("/");
System.out.println(request.generate());
HttpTester response = new HttpTester();
response.parse(tester.getResponses(request.generate()));
System.out.println(response.getContent());
System.out.println(response.getURI());
System.out.println(response.getReason());
assertEquals(200,response.getStatus());
assertEquals("<h1>Hello Servlet</h1>",response.getContent());
}
}
したがって、URIはコンテキストパス+その関数の2番目のパラメータにする必要がありますか?また、私はサーブレットがどこにマップされているかわかりません。コードマッピングには特別なことは何もありません。どのようにマップされるのかはどうすればわかりますか? – joshholat
addServletの2番目の引数はweb.xmlの ''と同じように見えます。 –
私はコンテキストパス/ hbc、addSerlvet引数/ HubComm(これは
joshholat