FakeIseasy不允许设置要返回的值

本文关键字:返回 不允许 设置 FakeIseasy | 更新日期: 2023-09-27 17:59:44

我不明白为什么FakeItEasy不允许我用参数设置公共方法的返回值。

代码:

var fakeInstanse = A.Fake<SomeClass>();
A.CallTo(() => fakeInstanse.Method(param1, param1));

Method是公共的,接受两个参数。通常,我会在第二行代码中调用Returns()方法,但VisualStudio并没有在可用的代码中显示它。

什么可能会影响这种行为?SomeClassMethod定义的哪一部分可能导致这种情况?

FakeIseasy不允许设置要返回的值

通常情况下,这应该可以工作。看看这个通过测试:

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)的声明吗?否则,我们将无法给出建设性的答案。此外,您可以在FakeIseasy"什么可以伪造"文档页面上找到一些帮助。