我們如何單元測試帶有嵌入式Jetty服務器的servlet?單元測試帶嵌入式Jetty的servlet
例如,如何測試下面的servlet方法?
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//any logic inside
}
我們如何單元測試帶有嵌入式Jetty服務器的servlet?單元測試帶嵌入式Jetty的servlet
例如,如何測試下面的servlet方法?
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//any logic inside
}
我非常喜歡使用類似於junit的東西來測試帶有嵌入式jetty實例的servlet以引導它。
即是如何做到這一點的小例子。
這也是我們如何測試絕大多數碼頭本身,啓動並運行它的步伐。
對於特定的servlet或處理程序,我們經常在我們的jetty-test-helper工件中使用jetty-client或SimpleRequest。 URLConnection也適用。
這裏是在碼頭的客戶端測試,它是碼頭-9,所以如果你想7或8,則相應的標籤下看,它是重構了不少在碼頭-9。
注:我建議你通過0作爲端口碼頭與啓動,這會給你一個隨機打開的端口,你可以再拉出碼頭用於測試目的的,這樣就避免了這種情況在可能存在端口衝突的CI或並行構建中運行多個構建。
你不需要碼頭至測試servlet,你需要一個單元測試框架,如JUnit,Mockito,JMock的等
一般來說,你不希望使用當你進行單元測試時,因爲你想將測試集中在正在測試的實際方法上,因此使用碼頭就意味着你也在測試碼頭行爲。完成所有單元測試後,可以繼續進行集成測試和系統測試,並且該部分可能涉及外部系統(如碼頭)(使用自動化框架,如Selenium)。我的單元測試中,您可以查看this code以獲得真實在線服務的實際示例(您可以在此找到here)。 我寫了一篇關於這項服務的教程,它包含了什麼,這可以找到here。
[在對此答案不時收到評價後添加]:並且有可能獲得更多的低價贊助,所有低級選手都需要閱讀UNIT TESTING的定義,然後再單擊-1按鈕。你只是不知道你在說什麼。
這非常有幫助。但在你的例子中,它並沒有真正顯示我們如何通過向servlet發出請求來測試HelloServlet(或更復雜的東西)。您能否提供一些更多信息? – blue123