设置Moq模型<;界面>;调用返回字符串的方法

本文关键字:返回 方法 字符串 调用 界面 Moq 模型 lt 设置 gt | 更新日期: 2023-09-27 18:27:21

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

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的定义"。一直在玩,但没有得到它。

设置Moq模型<;界面>;调用返回字符串的方法

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

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