我正在尝试将 DynamoDbLocal 服务器用于单元测试用例。并提出了两个选择,
要么定义一个 junit 类规则,它在课前启动本地服务器并在课后停止它。所以本质上它将为每个单元测试类启动和停止服务器。
public class MyDynamoDbLocalServerRule extends ExternalResource {
@Override
protected void before() throws Throwable {
myInMemoryDynamoDbServer.start();
}
@Override
protected void after() throws Throwable{
inMemoryDynamoDbServer.stop();
}
或者
单例实例:
public static DynamoDBProxyServerContainer createInstance(final int portToListenIn) {
if (dynamoLocal == null) {
synchronized (DynamoDBProxyServerContainer.class) {
if (dynamoLocal == null) {
dynamoLocal = new DynamoDBProxyServerContainer(portToListenIn);
}
}
}
return dynamoLocal;
}
private DynamoDBProxyServerContainer(final int portToListenIn) {
this.startServer(portToListenIn);
getRuntime().addShutdownHook(new Thread(() -> stopServer()));
}
你会推荐哪一个,你有更好的做法吗?请注意,我应该能够将它与 Guice 依赖注入框架一起使用。