设置对<Interface>返回字符串的方法的 Moq 模拟调用



我有一个类和一个方法,看起来像这样:

public class FieldLookup : IFieldLookup
{
    public string LookupField(string Var1, string Var2)
    {
        // do a database lookup
    }
}

这在与依赖注入一起使用的实际类中运行良好。我想弄清楚的是,在单元测试中,我如何使用Moq框架来模拟对该方法的调用。

var fieldLookup = new Mock<IFieldLookup>();

那么,我该怎么做。。。。?

fieldLookup.Setup<string>(x => x.LookupField("", "").Returns("something"));
fieldLookup.Setup(x => x.LookupField("", "").Returns("something"));

这两者都告诉我"String不包含Return的定义"。一直在玩,但没有得到它。

如果将括号放错了位置,则需要对Setup方法返回的对象调用Returns方法。

fieldLookup.Setup<string>(x => x.LookupField("", "")).Returns("something");
fieldLookup.Setup(x => x.LookupField("", "")).Returns("something");

最新更新