设置对 returns 字符串的方法的 Moq Mock<Interface> 调用
Setting up a Moq Mock<Interface> call to a method that returns a string
我有一个 class 和一个看起来像这样的方法:
public class FieldLookup : IFieldLookup
{
public string LookupField(string Var1, string Var2)
{
// do a database lookup
}
}
这在实际 class 中与依赖注入一起使用时效果很好。我想弄清楚的是,在单元测试中,我如何使用 Moq 框架来模拟对此方法的调用。
var fieldLookup = new Mock<IFieldLookup>();
那么,我该怎么做....?
fieldLookup.Setup<string>(x => x.LookupField("", "").Returns("something"));
fieldLookup.Setup(x => x.LookupField("", "").Returns("something"));
这两个都告诉我"String does not contain a definition for Return"。一直在玩,但没有得到它。
你把括号放错了地方,需要在Setup
方法返回的对象上调用Returns
方法
fieldLookup.Setup<string>(x => x.LookupField("", "")).Returns("something");
fieldLookup.Setup(x => x.LookupField("", "")).Returns("something");
我有一个 class 和一个看起来像这样的方法:
public class FieldLookup : IFieldLookup
{
public string LookupField(string Var1, string Var2)
{
// do a database lookup
}
}
这在实际 class 中与依赖注入一起使用时效果很好。我想弄清楚的是,在单元测试中,我如何使用 Moq 框架来模拟对此方法的调用。
var fieldLookup = new Mock<IFieldLookup>();
那么,我该怎么做....?
fieldLookup.Setup<string>(x => x.LookupField("", "").Returns("something"));
fieldLookup.Setup(x => x.LookupField("", "").Returns("something"));
这两个都告诉我"String does not contain a definition for Return"。一直在玩,但没有得到它。
你把括号放错了地方,需要在Setup
方法返回的对象上调用Returns
方法
fieldLookup.Setup<string>(x => x.LookupField("", "")).Returns("something");
fieldLookup.Setup(x => x.LookupField("", "")).Returns("something");