Unit testing REST模板单元测试

Unit testing REST模板单元测试,unit-testing,resttemplate,Unit Testing,Resttemplate,我正在尝试对一个在内部调用resttemplate的方法进行单元测试。但不知何故,我的测试不起作用。我想测试的方法看起来很简单 public Integer createAccount(Request request) { final String uri = "http://localhost:8080/stubs/otl/account/create"; return restTemplate.postForObject(uri, request, Integer.class

我正在尝试对一个在内部调用resttemplate的方法进行单元测试。但不知何故,我的测试不起作用。我想测试的方法看起来很简单

public Integer createAccount(Request request) {
    final String uri = "http://localhost:8080/stubs/otl/account/create";
    return restTemplate.postForObject(uri, request, Integer.class);
}
我的单元测试看起来很简单

@InjectMocks
AccountServiceImpl accountService;

@Mock
RestTemplate restTemplate;

@Value("${url.otl}")
private String urlOtl = "http://localhost:8080/stubs/otl/";

@Before
public void setUp(){
    MockitoAnnotations.initMocks(this);
}

@Test
public void createAccountTest(){

    MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate);

    mockServer.expect(requestTo(urlOtl+"account/create"))
            .andExpect(method(HttpMethod.POST))
            .andRespond(withSuccess("1", MediaType.APPLICATION_JSON));

    Request request = new Request();
    Integer result = accountService.createAccount(request);
    mockServer.verify();
    Assert.assertEquals("1", String.valueOf(result));
}
当我运行测试时,我得到了一个响应

java.lang.AssertionError:在1个请求中预期有0个请求被拒绝 在 org.springframework.test.web.client.MockRestServiceServer.verify(MockRestServiceServer.java:167)


谁能告诉我我遗漏了什么或做错了什么。

一个
MockRestServiceServer
中有一个
expectedRequests
列表,表示对服务器的请求,这些请求已经设置好,并且预期会被调用

verify()
然后断言所有这些预期请求都已被调用并命中服务器


因此,在您的案例中,
“http://localhost:8080/stubs/otl/account/create“
请求是预期的,但在调用
verify()
方法之前没有被调用,因此
verify()
的断言失败。

MockRestServiceServer中有一个
expectedRequests
列表,表示已设置并预期将调用的对服务器的请求

verify()
然后断言所有这些预期请求都已被调用并命中服务器


因此,在您的案例中,
“http://localhost:8080/stubs/otl/account/create“
请求是预期的,但在调用
verify()
方法之前尚未调用,因此
verify()
的断言失败。

我也遇到了同样的问题。出现上述错误的原因可能是rest url未被命中,或者结果未达到预期。

我也遇到了同样的问题。出现上述错误的原因可能是rest url未被命中,或者结果未达到预期