我有一个类和方法看起来像这样:
public class FieldLookup : IFieldLookup
{
public string LookupField(string Var1, string Var2)
{
// do a database lookup
}
}
这在它与Dependency Injection一起使用的实际类中工作正常。我试图弄清楚的是,在单元测试中,我是如何使用Moq框架来模拟对此方法的调用。
var fieldLookup = new Mock<IFieldLookup>();
然后,我该怎么做......?
fieldLookup.Setup<string>(x => x.LookupField("", "").Returns("something"));
fieldLookup.Setup(x => x.LookupField("", "").Returns("something"));
这两个都告诉我&#34; String不包含Return&#34;的定义。一直在玩,但没有得到它。
答案 0 :(得分:2)
您将括号放在错误的位置,您需要在Returns
方法返回的对象上调用Setup
方法。
fieldLookup.Setup<string>(x => x.LookupField("", "")).Returns("something");
fieldLookup.Setup(x => x.LookupField("", "")).Returns("something");