0

在我们的测试中,我们有模拟对象,它们的行为略有不同。能够用新的默认行为覆盖默认行为会很好,所以我们只需要在每个测试的基础上定义显式不同的行为。我们目前正在使用 unitils,但我们正在寻找任何 java 模拟框架中问题的解决方案。

问题说明(使用单位):

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 模拟框架?

4

1 回答 1

1

看看所谓 的 mockito 间谍或JMockit 的动态(部分)模拟

于 2013-10-25T12:21:15.493 回答