簡體   English   中英

集成測試無法連接,手動瀏覽器測試通過帶有SpringBoot / Jsoup集成測試的Java RESTful Web服務成功

[英]Integration Tests fail to connect, Manual Browser Test succeeds with Java RESTful Web Service with SpringBoot/Jsoup Integration Test

我正在嘗試運行本書中的示例代碼: 使用Spring 5-Second Edition構建RESTful Web服務 您可以免費下載示例代碼。 在第7章中,它們具有一些示例代碼,其中包括所有集成測試和單元測試,它們均位於同一目錄“ chapter7 \\ ticketmanagement / src / test / java / com / packtpub / restapp / ticketmanagement /”中。 單元測試工作正常。 集成測試失敗,並顯示“ testUsersJsoup(com.packtpub.restapp.ticketmanagement.JsoupUserTest)經過的時間:1.011秒<<<錯誤!java.net.ConnectException:連接被拒絕:connect”

我嘗試在“ ticket-management \\ src \\ main \\ resources \\ application.properties”中將端口從8080更改為9090(我還更改了集成測試中的硬編碼值),但這沒有幫助。

因此,“ MVN測試”會產生上述錯誤。 在spring工具套件中運行它們也是如此。 我編輯了原始的pom.xml並添加了“ maven-compiler-plugin”以指定Java版本1.8。 我正在運行Windows 10。

因此,失敗的代碼在“第7章\\ ticket-management \\ src \\ test \\ java \\ com \\ packtpub \\ restapp \\ ticketmanagement \\ JsoupUserTest.java”中。

這是失敗的代碼:

public void testUsersJsoup() throws IOException {

    String doc = Jsoup.connect("http://localhost:9090/user").ignoreContentType(true).get().body().text();

    _log.info("{test} doc : " + doc);

    JsonParser parser = new JsonParser();
    JsonElement userElement = parser.parse(doc);
    JsonArray userArray = userElement.getAsJsonArray();

    _log.info("{test} size : " + userArray.size());

    assertEquals(4, userArray.size());
}

但是,當我鍵入

mvn spring-boot:run

它成功啟動,我將chrome瀏覽器指向http:// localhost:9090 / user (如果使用原始代碼,則指向http:// localhost:8080 / user ),我看到了

[{"userid":100,"username":"David"},{"userid":101,"username":"Peter"},{"userid":102,"username":"John"}]

沒有連接錯誤! 結果看起來正確。

  1. 我們知道這不是防火牆問題,因為它僅適用於localhost,並且適用於chrome。
  2. 沒有代理。
  3. 我認為端口是正確的:目前,在application.properities文件,源代碼和瀏覽器中有9090。
  4. “ MVN清潔”,然后“ MVN測試”再次沒有幫助。

有一些注釋可以啟動Web應用程序,如以下示例所示: Spring Live Lessons Tutorial ,它們可以工作。 請參閱%JAVA_BUILDINGMICROSERVICES%\\ livelessons-security \\ livelessons-security-basic \\ src \\ test \\ java \\ basic \\ BasicSecurityApplicationTests.java。

這些注釋已被棄用,並被更新的注釋所取代。 問題在於,本教程的作者未正確使用這些新注釋:他還需要使用@WebAppConfiguration,這需要@SpringBootTest中的一些配置參數(他丟失了)。 因此,有必要在單獨的過程中使用“ mvn spring-boot:run”手動啟動Web服務器,然后運行測試。

當我嘗試使用@WebAppConfiguation時,出現了其他錯誤。 我將在另一篇文章中(某天)記錄這些錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM