単体テスト ケースに DynamoDbLocal サーバーを使用しようとしています。そして2つの選択肢を思いついた、
クラスの前にローカルサーバーを開始し、クラスの後に停止する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依存性注入フレームワークで使用できるはずです。