我试着让我的简单模拟工作,但它太繁琐了。 我在这个地方犯了一个错误
(string s1, string s2) => { return (string)(s1 + s2); });
消息说
“委托'System.Func'不带2个参数”
但在this文章中所有作品
我的所有代码都在这里。
public interface IWriteTwoString
{
string WriteTwoStrings(string s1, string s2);
}
public MyPriceReducerTest()
{
Mock<IWriteTwoString> writeMock = new Mock<IWriteTwoString>(MockBehavior.Strict);
writeMock.Setup(m => m.WriteTwoStrings(It.IsAny<string>(), It.IsAny<string>()))
.Returns<string>((string s1, string s2) => { return (string)(s1 + s2); });
}
答案 0 :(得分:5)
您的问题是表达式:Returns<string>
告诉moq您的WriteTwoStrings
有一个 string
参数,但您有两个强>因此你得到一个错误。
所以你需要写:
.Returns<string, string>((string s1, string s2) => { return (string)(s1 + s2); });
或者你可以完全忽略这些类型,因为编译器可以推断它们:
.Returns((string s1, string s2) => { return (string)(s1 + s2); });