使用FakeItEasy进行Out和Ref参数

29

我有一个方法,它有一个输出参数,返回记录的数量。我想知道如何使用FakeItEasy来模拟它。

1个回答

51

您应该使用 .AssignsOutAndRefParameters 配置方法:

[Test]
public void Output_and_reference_parameters_can_be_configured()
{
    var fake = A.Fake<IDictionary<string, string>>();
    string ignored = null;

    A.CallTo(() => fake.TryGetValue("test", out ignored))
        .Returns(true)
        .AssignsOutAndRefParameters("foo");

    // This would of course be within you SUT.
    string outputValue = null;
    fake.TryGetValue("test", out outputValue);

    Assert.That(outputValue, Is.EqualTo("foo"));
}

1
@Patrik Hägne,如果一个函数有两个输出参数,那么如何将它们传递给AssignsOutAndRefParameters()函数? - Umesha MS
1
@UmeshaMS,.AssignsOutAndRefParameters("out1", "out2") - Blair Conrad
官方文档链接:https://fakeiteasy.readthedocs.io/en/stable/assigning-out-and-ref-parameters/ - Malcolm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接