当我在谷歌搜索/阅读这个答案时,我想我也会问这里。
我有一个类,它是SDK的包装器。该类接受ILoader对象并使用ILoader对象创建一个强制转换为ISmallBusinessInstance对象的ISBAObject。我只是试图使用Moq来模拟这种行为。
[TestMethod]
public void Test_Customer_GetByID()
{
var mock = new Mock<ILoader>();
var sbainst = new Mock<ISbaObjects>();
mock.Expect(x => x.GetSbaObjects("")).Returns(sbainst);
}
编译器错误读取:错误1“Moq.Language.IReturns.Returns(Microsoft.BusinessSolutions.SmallBusinessAccounting.Loader.ISbaObjects)”的最佳重载方法匹配具有一些无效参数
这里发生了什么?我期望能够毫无问题地返回ISbaObjects的模拟。
答案 0 :(得分:8)
你需要使用sbainst.Object,因为sbinst不是ISbaObjects的实例 - 它只是模拟部分。
答案 1 :(得分:2)
更新了正确的代码
[TestMethod]
public void Test_Customer_GetByID()
{
var mock = new Mock<ILoader>();
var sbainst = new Mock<ISbaObjects>();
mock.Expect(x => x.GetSbaObjects("")).Returns(sbainst.Object);
}