Spring 单元测试中对 Json 字符串的响应对象
Spring Response Object to Json String in a Unit-Test
我有一个 spring 启动休息控制器,其中 returns 一个对象。像这样:
@RestController
@RequestMapping("books-rest")
public class SimpleBookRestController {
@GetMapping("/{id}", produces = "application/json")
public ResponseEntity<Book> getBook(@PathVariable int id) {
return findBookById(id);
}
}
我有一个单元测试来测试这个控制器方法(mockito 模拟内部的服务调用)。类似于:
@RunWith(MockitoJUnitRunner.Silent.class)
public class SimpleBookRestControllerTest {
@Autowired
@InjectMocks
private SimpleBookRestController simpleBookRestController;
@Mock
private MyService myservice;
我现在想测试 spring 对反序列化为 JSON 字符串的对象到底做了什么。
在我的测试中,我只测试对象,这很好。
但是我现在有一个错误,我想在单元测试中看到 JSON 字符串。
你会怎么做?
您需要的不仅仅是简单的单元测试——SimpleBookRestController
不处理到 JSON 的转换,因此您不能只对它进行单元测试。
请参阅本指南:https://spring.io/guides/gs/testing-web/,或查找使用 @WebMvcTest
的示例,这是一种测试整个 Web 层的方法,包括 REST 调用及其响应。
我有一个 spring 启动休息控制器,其中 returns 一个对象。像这样:
@RestController
@RequestMapping("books-rest")
public class SimpleBookRestController {
@GetMapping("/{id}", produces = "application/json")
public ResponseEntity<Book> getBook(@PathVariable int id) {
return findBookById(id);
}
}
我有一个单元测试来测试这个控制器方法(mockito 模拟内部的服务调用)。类似于:
@RunWith(MockitoJUnitRunner.Silent.class)
public class SimpleBookRestControllerTest {
@Autowired
@InjectMocks
private SimpleBookRestController simpleBookRestController;
@Mock
private MyService myservice;
我现在想测试 spring 对反序列化为 JSON 字符串的对象到底做了什么。 在我的测试中,我只测试对象,这很好。 但是我现在有一个错误,我想在单元测试中看到 JSON 字符串。
你会怎么做?
您需要的不仅仅是简单的单元测试——SimpleBookRestController
不处理到 JSON 的转换,因此您不能只对它进行单元测试。
请参阅本指南:https://spring.io/guides/gs/testing-web/,或查找使用 @WebMvcTest
的示例,这是一种测试整个 Web 层的方法,包括 REST 调用及其响应。