【发布时间】:2019-11-07 09:27:13
【问题描述】:
代码sn-p根据参数检索实体。
public void updateNotification(String status, Entity entity ) {
Entity entity1 = null;
try {
switch (status) {
case "AX":
entity1 = this.Repository.findByTypeAndParams(
1, entity.getParam1(), entity.getParam2(),
entity.getParam3());
if (entity1!= null) {
entity1.setCurrentStatusKey("SET");
updateEntity(entity1);
} else {
LOGGER.debug("");
}
break;
上述代码的测试用例:
@RunWith(SpringJUnit4ClassRunner.class)
public class ServiceTest {
@InjectMocks
CVService cVServiceMock;
@Mock
RepositoryMock repositoryMock;
@Test
public void testUpdateOut() {
Entity entity1 = new Entity ();
entity1.setType(2);
Mockito.when(repositoryMock.findByTypeAndParams(any(Integer.class), any(String.class),
any(String.class), any(String.class))).thenReturn(entity1);
cVServiceMock.updateNotification("AX", entity1);
}
从测试用例执行时,entity1 始终为 null 而不是模拟实体, 我在这里做错了什么?
【问题讨论】:
-
考虑添加minimal reproducible example 或至少添加完整的测试(包括模拟创建和其他注释)和被测类的相关部分(方法签名、相关字段、构造函数)。跨度>
-
你能展示一下notificationServiceMock是如何初始化的吗?最好将所有类都粘贴到服务和测试中。
-
请说明
RepositoryMock是如何创建的。
标签: java spring-boot spring-data-jpa mockito mockmvc