【发布时间】:2020-11-20 14:22:59
【问题描述】:
我有一个与 Spring Boot 中的单元测试相关的问题。我有一个简单的用户管理应用程序,它对用户进行基本的 crud 操作。我使用根据端点在控制器内部调用的服务。例如:
for url = "/createUser" - service.createUser 被调用并处理所有活动(检查用户是否已经存在,以及其他异常处理)并最终将用户添加到数据库中。
现在我要对这个服务进行单元测试,以防创建用户,以下是我的代码:
@Test
void testRegisterUser() {
Set<String> roles = new HashSet<>();
signUpRequest.setCustomername("s");
signUpRequest.setCustomerid("1s");
signUpRequest.setCustomername("custsomername");
signUpRequest.setDescription("customser description");
signUpRequest.setEmail("customser@mail.com");
signUpRequest.setPassword("12s3");
signUpRequest.setRole(roles);
service.createUser(signUpRequest);
verify(repository, times(1)).save(any(UserModel.class));
}
最后我所做的只是调用服务的方法来创建用户。我已经嘲笑了这个服务和存储库。在最后一行,我正在验证存储库是否已被立即调用。
我想了解的内容是否正确?这是测试它的正确方法吗?我的学长想要在这里断言,但是如果 createUser 没有返回任何值,那么 assertEquals 有什么意义,因为我没有进行集成测试,这里没有数据库。我在这里测试的只是我的逻辑和模仿行为。我将不胜感激。提前致谢。
【问题讨论】:
-
能否也提供您的存储库的代码,这将很有帮助。
标签: spring-boot junit mockito