4

この回答をグーグル/読んでいる間、ここでも質問すると思いました。

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 の Mock が問題なく返されることを期待していました。

4

2 に答える 2

9

sbinst は ISbaObjects のインスタンスではないため、sbainst.Object を使用する必要があります。これは単なるモック部分です。

于 2008-10-02T20:24:20.127 に答える
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);


}
于 2008-10-03T22:42:27.050 に答える