4

単純なモックを機能させようとしていますが、面倒です。ここで一つ間違える

(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); });
}
4

1 に答える 1

5

問題は次の式にあります。これは、パラメータが1つReturns<string>あることをmoqに通知しますWriteTwoStringsが、パラメータが2つあるため、エラーが発生します。 string

したがって、次のように書く必要があります。

.Returns<string, string>((string s1, string s2) => { return (string)(s1 + s2); });

または、コンパイラが型を推測できるため、型を完全に除外することもできます。

.Returns((string s1, string s2) => { return (string)(s1 + s2); });
于 2012-09-01T13:27:15.447 に答える