小编Ale*_*xey的帖子

如何在Spring中模拟ModelMapper?

我正在尝试为我的服务层编写单元测试:

@SpringBootTest
class ClinicServiceTest {

@Mock
private ProcedureRepository procedureRepository;
@InjectMocks
private ClinicService clinicService;

@Test
void setProcedureStatus() {
    when(procedureRepository.findById(1L)).thenReturn(Optional.of(initialEntity));
    when(procedureRepository.saveAndFlush(expectedEntity)).thenReturn(expectedEntity);
    Procedure assertProcedure = clinicService.setProcedureStatus(1L, "CANCELED");
  }
}
Run Code Online (Sandbox Code Playgroud)

当我调用setProcedureStatus方法时,它会抛出 NullPointerException,因为我的服务类使用由 Spring 自动装配的 ModelMapper:

@Service
@RequiredArgsConstructor
public class ClinicService {

private final ProcedureRepository procedureRepository;
private final ModelMapper modelMapper;

public Procedure setProcedureStatus(Long procedureId, String status) {
    ...
    return modelMapper.map(procedureEntity, Procedure.class);
}
Run Code Online (Sandbox Code Playgroud)

}

单元测试不会引发 Spring 上下文,这就是当我从测试中调用 ModelMapper 时,Service 中的 ModelMapper 为 null 的原因。有办法解决这个问题吗?

java testing junit spring mockito

9
推荐指数
2
解决办法
1万
查看次数

Keycloak 密码黑名单不适用于特殊符号

我有一个包含黑名单密码的文本文件,并将文件名设置为“身份验证”->“密码策略”->“keycloak 中的密码黑名单”。如果有简单的密码,例如

password
admin
user
Run Code Online (Sandbox Code Playgroud)

效果很好 - 当我尝试更改密码时,我看到了这条消息Error! Invalid password: password is blacklisted. 但是当我向此列表添加更复杂的密码时,就像Music.1%它不起作用 - 我可以将密码更改为此。

为什么它会如此有效?有没有办法将文件中的类似密码列入黑名单?

java keycloak

1
推荐指数
1
解决办法
2440
查看次数

标签 统计

java ×2

junit ×1

keycloak ×1

mockito ×1

spring ×1

testing ×1