私はちょうどJavaアプリケーション用のSpockテストフレームワークの作業を開始しました。以前Groovyの経験はありませんでした。 Spockフレームワークを使用してコンストラクタにモックを挿入するにはどうすればよいですか?以下は私のコードとテストの例です。モックオブジェクトをコンストラクタに挿入するにはどうすればいいですか?
public class ResourceClass {
private final IDynamoDBMapper factory = new DefaultDynamoDBClientFactory(DynamoDBConfig.fromProperties()).mapperClient();
private ServiceClass service;
@Inject
public ResourceClass(ServiceClass service) {
this.service = service;
}
}
そして、以下のようなテストクラスを作成しようとしました。
class ResourceClassTest extends Specification {
ResourceClass eventsResource
ServiceClass service
def setup() {
service = Mock(ServiceClass)
eventsResource = new ResourceClass(service)
}
しかし、私はeventsResource =新しいResourceClass(サービス)
java.lang.NullPointerException: Domain name must be specified.
at java.util.Objects.requireNonNull(Objects.java:228)
で例外の下に任意の提案を取得していますしてください?
はあなたにGergelyをありがとうございます。 DynamoDBMapperをリソースクラスに挿入するようにソースコードを変更しました。これは、Spockを使用する場合、またはmockitoを使用する場合にのみ発生します。 – vamsi
これはSpockテストを実行しているときに発生しますが、スポークの問題ではありませんが、アプリケーションを実行するときとテストを実行するときにクラスパスが異なることがあります。したがって、アプリケーションを実行しているときにclasspathにdynamo db設定ファイルがあり、テストを実行していない場合 –