我已经为此苦苦挣扎了一段时间。 我想使用 restAssured 来测试我的 SpringBoot REST 应用程序。
虽然看起来容器正常旋转,但请放心(其他任何东西似乎都无法触及它。
我总是收到 Connection denied 异常。
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
...
我的测试课:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SizesRestControllerIT {
@Autowired
private TestRestTemplate restTemplate;
@Test
public void test() {
System.out.println(this.restTemplate.getForEntity("/clothes", List.class));
}
@Test
public void test2() throws InterruptedException {
given().basePath("/clothes").when().get("").then().statusCode(200);
}
}
现在对于奇怪的部分,test
通过并打印它应该的内容,但是 test2
得到 Connection refused 异常。
你知道这个设置有什么问题吗?
最佳答案
我会自己回答这个问题..
在花费额外的时间后,发现 TestRestTemplate
已经知道并设置了正确的端口。
RestAssured 不会...
这样我就达到了以下测试运行没有任何问题的地步。
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SizesRestControllerIT {
@LocalServerPort
int port;
@Before
public void setUp() {
RestAssured.port = port;
}
@Test
public void test2() throws InterruptedException {
given().basePath("/clothes").get("").then().statusCode(200);
}
}
我本可以发誓我以前尝试过这样做...但我想我确实使用了其他一些注释...
https://stackoverflow.com/questions/40665315/
相关文章:
java - Spring Boot 是否可以使用 JAR 包装来提供 JSP?
java - Spring Security 中的 "principal"是什么?
java - servlet 映射 url 模式上的双通配符 (*) 是什么意思?
spring - Thymeleaf - 使用 PUBLICID "null"请求的不受支持的实体
spring - 是否可以在表单 :select/form:option 的 itemLabel 中
java - SpringBoot - BeanDefinitionOverrideExceptio
java - 使用 Spring 将文本文件直接注入(inject) String
java - 通过 Spring 将字段注入(inject) Hibernate 加载的实体中