【发布时间】:2021-12-08 04:47:39
【问题描述】:
我目前正在使用 Java 11 开发 AWS Lambda。它要求我的处理程序实现有一个空的构造函数。我的处理程序看起来像这样
public class ApiKeyHandler {
private final SecretsManagerClient secretsManagerClient;
public ApiKeyHandler() {
secretsManagerClient = DependencyFactory.secretsManagerClient();
}
public void handleRequest(Object event, Context context) {
//Other codes here
secretsManagerClient.getSecret(/../);
}
}
和依赖工厂类
public class DependencyFactory {
private DependencyFactory() {}
/**
* @return an instance of SecretsManagerClient
*/
public static SecretsManagerClient secretsManagerClient() {
return SecretsManagerClient.builder()
.region(/**/)
.build();
}
}
现在,当我尝试为此编写单元测试时,我无法在构造函数中模拟对象。有什么方法可以模拟它吗?
我试过了
@Mock SecretsManagerClient secretsManagerClient;
@InjectMocks ApiKeyHandler handler;
但没有运气。谢谢
【问题讨论】:
标签: java unit-testing junit mockito