我试着让我的简单模拟工作,但它太繁琐了.我在这个地方犯了一个错误
(string s1, string s2) => { return (string)(s1 + s2); });
消息说明了这一点
"委托'System.Func'不接受2个参数"
但在这篇文章中都有效
这里的所有代码.
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); });
}
Run Code Online (Sandbox Code Playgroud)
你的问题是表达式:Returns<string>它告诉moq你WriteTwoStrings有一个 string参数,但你有两个因此你得到一个错误.
所以你需要写:
.Returns<string, string>((string s1, string s2) => { return (string)(s1 + s2); });
Run Code Online (Sandbox Code Playgroud)
或者您可以完全省略类型,因为编译器可以推断它们:
.Returns((string s1, string s2) => { return (string)(s1 + s2); });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
654 次 |
| 最近记录: |