HttpRequest.post 我希望这个方法可以mock出固定的返回值我该如何mock 用java语言编译
时间: 2024-05-05 19:16:34 浏览: 140
你可以使用Mockito来mock出固定的返回值。下面是一个示例:
```
import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
public class HttpRequestTest {
@Test
public void testPost() {
// 创建一个mock的RestTemplate对象
RestTemplate restTemplate = Mockito.mock(RestTemplate.class);
// 创建一个mock的返回值
ResponseEntity<String> response = new ResponseEntity<>("Hello World", HttpStatus.OK);
// 当调用post方法时,返回mock的response对象
when(restTemplate.exchange(any(String.class), any(HttpMethod.class), any(HttpEntity.class), any(Class.class)))
.thenReturn(response);
// 调用post方法
HttpRequest httpRequest = new HttpRequest(restTemplate);
String result = httpRequest.post("http://example.com", "data");
// 验证返回值是否符合预期
assertEquals("Hello World", result);
}
}
```
在这个示例中,我们首先创建了一个mock的RestTemplate对象,然后创建了一个mock的返回值。接着,我们使用Mockito的when方法来定义当调用post方法时,返回mock的response对象。最后,我们调用post方法,并验证返回值是否符合预期。
阅读全文