如何在模拟第三方 API 时测试 spring 休息控制器?

How to test spring rest controllers while mocking third party APIs?

我想为调用第三方 api 的休息控制器编写集成测试。为了模拟第三方 api 我正在使用 mock-server java library 并且为了集成测试我正在使用测试容器。似乎这两者是冲突的。模拟服务器库要求测试用例用 org.junit.test 注释,而测试容器要求测试用例用 org.junit.jupiter.api.Test.

注释

如果我使用 jupiter 测试注释,启动失败并显示 org.mockserver.client.SocketConnectionException: Unable to connect to socket /127.0.0.1:1080,而如果我使用 junit 测试注释,则测试启动失败并显示 Caused by: java.lang.IllegalStateException: Mapped port can only be obtained after the container is started

有没有人遇到过这种情况,您想要编写其余控制器测试以及模拟第三方 apis? 谢谢。

我可以通过删除包 org.junit 下的任何注释来获得我的测试 运行。所有注释均来自org.junit.jupitor.