私たちのテストでは、動作がわずかに異なるモック オブジェクトがあります。デフォルトの動作を新しいデフォルトの動作でオーバーライドできるとよいので、テストごとに明示的に異なる動作を定義するだけで済みます。現在、ユニティルを使用していますが、Java モッキング フレームワークでの問題の解決策を探しています。
問題の図 (unitils を使用):
Mock<MyClass> myMock1 = new MockObject<>(MyClass.class,myTestedObject);
myMock1.returns(1).getAnInteger();
myMock1.returns("Hello").getAString();
myMock1.returns(true).getABoolean();
myMock1.returns(3.14).getADouble();
Mock<MyClass> myMock2 = new MockObject<>(MyClass.class,myTestedObject);
myMock2.returns(2).getAnInteger();
myMock2.returns("Hello").getAString();
myMock2.returns(false).getABoolean();
myMock2.returns(3.14).getADouble();
私たちが探しているのは、次のようなものです。
MockObjectFactory<MyClass> myMockObjectFactory = new MockObjectFactory<>(MyClass.class);
myMockObjectFactory.defaultReturns(1).getAnInteger();
myMockObjectFactory.defaultReturns("Hello").getAString();
myMockObjectFactory.defaultReturns(false).getABoolean();
myMockObjectFactory.defaultReturns(3.14).getADouble();
Mock<MyClass> myMock1 = myMockObjectFactory.createMockObject(myTestedObject);
myMock1.returns(true).getABoolean();
Mock<MyClass> myMock2 = myMockObjectFactory.createMockObject(myTestedObject);
myMock2.returns(2).getAnInteger();
デフォルトの動作を新しいデフォルトの動作でオーバーライドすることをサポートする現在の Java モッキング フレームワークを知っていますか?