我正在尝试运行本书中的示例代码:Building RESTful Web Services with Spring 5 - Second Edition。您可以免费下载示例代码。在第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
它成功启动,我将镶边浏览器指向http://localhost:9090/user(如果使用的是原始代码,则指向http://localhost:8080/user)
[{"userid":100,"username":"David"},{"userid":101,"username":"Peter"},{"userid":102,"username":"John"}]
无连接错误!结果看起来正确。
答案 0 :(得分:0)
有一些注释可以启动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时,出现了其他错误。我将在另一篇文章中(某天)记录这些错误。