我已经为此苦了一段时间了。我想使用restAssured测试我的SpringBoot REST应用程序。
尽管看起来容器可以正常旋转,但是请放心(其他任何问题似乎都难以解决。
我一直在获得Connection拒绝异常。
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传递并打印它应该显示的内容,但是却导致test2Connection拒绝异常。
test
test2
任何想法此设置有什么问题吗?
我会自己回答这个问题。
在花费了额外的时间后,事实证明TestRestTemplate已经知道并设置了正确的端口。RestAssured没有…
TestRestTemplate
这样我就可以进行下面的测试了,没有任何问题。
@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); } }
我本可以发誓以前尝试过这种方式…但是我想我确实为此使用了其他一些注释…