Junit 每个单元测试类或单例实例化的DynamoDbLocal的多个实例
我正在尝试将DynamoDbLocal服务器用于单元测试用例。 提出了两个选择 或者定义一个junit类规则,该规则在类之前启动本地服务器,在类之后停止本地服务器。所以本质上,它将为每个单元测试类启动和停止服务器Junit 每个单元测试类或单例实例化的DynamoDbLocal的多个实例,junit,amazon-dynamodb,guice,dynamo-local,jukito,Junit,Amazon Dynamodb,Guice,Dynamo Local,Jukito,我正在尝试将DynamoDbLocal服务器用于单元测试用例。 提出了两个选择 或者定义一个junit类规则,该规则在类之前启动本地服务器,在类之后停止本地服务器。所以本质上,它将为每个单元测试类启动和停止服务器 public class MyDynamoDbLocalServerRule extends ExternalResource { @Override protected void before() throws Throwable { myInMemoryDynamoDbS
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依赖项注入框架一起使用 我建议使用单例方法,因为为每个测试用例创建数据库实例将是一个耗时的选项。此外,如果您有许多测试用例,那么单元测试可能需要更多的时间来完成。如果您有持续集成,构建和单元测试将花费更多的时间 由于单元测试是以顺序方式运行的,所以不需要为每个测试用例使用单独的实例