gpt4 book ai didi

java - 是否有一个模拟框架允许我定义新的默认行为?

转载 作者:行者123 更新时间:2023-12-01 13:56:37 25 4
gpt4 key购买 nike

在我们的测试中,我们的模拟对象的行为略有不同。如果能够用新的默认行为覆盖默认行为,那就太好了,因此我们只需在每个测试的基础上定义明确不同的行为。我们目前正在使用unitils,但我们正在寻找任何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 模拟框架支持使用新的默认行为覆盖默认行为吗?

最佳答案

看看所谓的spies of mockitodynamic (partial) mocking JMockit的

关于java - 是否有一个模拟框架允许我定义新的默认行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19589441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com