Moq示例使用out和ref需要

use*_*969 8 moq

我正在尝试针对实现输出参数的一些遗留方法构建测试.你能举个例子说明怎么做吗?

Mar*_*ann 22

只需从测试中分配outref参数即可.

鉴于此接口:

public interface ILegacy
{
    bool Foo(out string bar);
}
Run Code Online (Sandbox Code Playgroud)

你可以这样写一个测试:

[TestMethod]
public void Test13()
{
    string bar = "ploeh";

    var legacyStub = new Mock<ILegacy>();
    legacyStub.Setup(l => l.Foo(out bar))
        .Returns(true);

    Assert.IsTrue(legacyStub.Object.Foo(out bar));
    Assert.AreEqual("ploeh", bar);
}
Run Code Online (Sandbox Code Playgroud)