【发布时间】:2020-07-10 13:48:47
【问题描述】:
我有一个如下所示的 Spring 控制器:
@RestController
@RequestMapping("/foo")
public class FooController {
@Autowired
private NamedParameterJdbcTemplate template;
@GetMapping("/{name}")
public List<Foo> byName(@PathVariable String name) {
Map<String, String> params = new HashMap<>();
params.put("name", name);
List<Foo> result = template.query("SELECT * FROM FOOS WHERE FOO_NM = :name", params, new FooRowMapper());
if (result.size() == 0) {
throw new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("foo %s not found", name));
}
return result;
}
}
但是,我不确定如何对此进行测试。我可以做一个基本的“Spring 可以设置”测试:
@SpringBootTest
public class FooControllerTest {
@Autowired
private FooController controller;
@Test
public void canCreate() {
Assertions.assertNotNull(controller);
}
}
但我不确定什么是正确的测试方法,例如byName 方法。我需要嘲笑什么吗?我可以像普通的 Java 方法一样测试它(使用任何参数调用它并断言输出)吗?
【问题讨论】:
标签: java spring spring-boot-test