C# 最小起订量不返回';行不通
我试着让我的简单模拟工作,但它太乏味了。 我在这里犯了一个错误C# 最小起订量不返回';行不通,c#,.net,moq,C#,.net,Moq,我试着让我的简单模拟工作,但它太乏味了。 我在这里犯了一个错误 (字符串s1,字符串s2)=>{return(字符串)(s1+s2);}) 消息说 “委托'System.Func'不接受2个参数” 但在文章中,一切都是有效的 我所有的代码都在这里 public interface IWriteTwoString { string WriteTwoStrings(string s1, string s2); } public MyPriceReducerTest() { Mock
(字符串s1,字符串s2)=>{return(字符串)(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); });
}
公共接口IWriteTwoString
{
字符串WriteTwoStrings(字符串s1、字符串s2);
}
公共MyPriceReducerTest()
{
Mock writeMock=newmock(MockBehavior.Strict);
Setup(m=>m.WriteTwoStrings(It.IsAny(),It.IsAny())
.Returns((字符串s1,字符串s2)=>{return(字符串)(s1+s2);});
}
您的问题在于表达式:返回
,它告诉moq您的WriteHostings
有一个字符串
参数,但您有两个因此您会得到一个错误
所以你需要写:
.Returns<string, string>((string s1, string s2) => { return (string)(s1 + s2); });
您还可以执行
.Returns((s1,s2)=>{…})代码>并让编译器为lambda进行推断。任何一种方法都有效。关于上一个示例-我尝试写入返回-但该错误再次出现。@user1640532是否设置了相同的方法字符串WriteTwoStrings(字符串s1,字符串s2)
?因为它应该与返回一起工作
。如果出现相同的错误,可以使用新代码编辑和更新问题,也可以使用新问题创建新问题。
.Returns((string s1, string s2) => { return (string)(s1 + s2); });