gpt4 book ai didi

java - 如何使用easymock模拟构造函数上的方法调用?

转载 作者:行者123 更新时间:2023-12-04 06:23:38 28 4
gpt4 key购买 nike

我有一个类,它接收一个工厂作为在构造函数中调用的参数。它必须在那里调用,因为在使用对象之前应该完全初始化它。就像是:

class MyClass {

private Foo foo;

MyClass(FooFactory fooFactory, Bar bar) {
this.foo = fooFactory.newFoo(bar);
}
}

Foo 的实例不能直接传递给构造函数,因此请考虑这是问题的限制。 MyClass 不能使用 EasyMock 进行测试,因为 fooFactory 将是一个未在 setUp 中初始化的模拟:
private MyClass myClass;

public void setUp() {
FooFactory fooFactory = mock(fooFactory);
Bar bar = new Bar();
myClass = new MyClass(fooFactory, bar)
}

所以当 setUp 被调用时,调用 fooFactory.newFoo(bar)构造函数内部将失败并显示 IllegalStateException,因为没有设置此类期望。

问题是,如何在构造函数中模拟方法调用?

最佳答案

您可以 EasyMock.reset(fooFactory)setUp之后 MyClass被 build 。

关于java - 如何使用easymock模拟构造函数上的方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282364/

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