我无法理解为什么FakeItEasy
不允许我为带参数的公共方法设置返回值。
代码:
var fakeInstanse = A.Fake<SomeClass>();
A.CallTo(() => fakeInstanse.Method(param1, param1));
Method
是公共的,接受两个参数。通常我会在第二行代码上调用Returns()
方法,但Visual Studio不会在可用的代码中显示它。
可能会影响这种行为? SomeClass
或Method
定义的哪一部分可能导致此问题?
答案 0 :(得分:2)
一般来说,这应该有效。看看这个通过测试:
public class SomeClass
{
public virtual int Method(int arg1, int arg2)
{
return 7;
}
}
[TestFixture]
public class TestFixture
{
[Test]
public void Should_be_able_to_set_return_value()
{
const int param1 = 9;
var fakeInstanse = A.Fake<SomeClass>();
A.CallTo(() => fakeInstanse.Method(param1, param1))
.Returns(8);
Assert.That(fakeInstanse.Method(param1, param1), Is.EqualTo(8));
}
}
Method
的返回类型是什么?根据您的描述,我猜它是void
。
你能告诉我们SomeClass(和SomeClass.Method)的声明吗?否则,我们无法给出建设性的答案。另外,您可以在the FakeItEasy "what can be faked" documentation page找到一些帮助。