0

以下のインターフェースをモックするにはどうすればよいですか?

interface IServiceClientAPI
    {

        ResponseData GetData(string userid,string orderid);
    }
4

1 に答える 1

1

次のようにインターフェイスをモックできます。

[TestMethod]
public void SomeMethod_SomeScenarioWhichYourAreTesting_ExpectedResult()
{
    // Arrange
    var mockServiceClientApi = new Mock<IServiceClientAPI>();
    var responseData = new ResponseData(); // Add any necessary initialization to this member
    mockServiceClientApi.Setup(m => m.GetData(It.IsAny<string>(), It.IsAny<string>()).Returns(responseData).Verifiable();

    var someObject = new SomeObject(mockServiceClientApi.Object);

    // Act
    var result = someObject.DoSomething();

    // Assert
    mockServiceClientApi.Verify();
}

上記のコードでは、テスト メソッドを記述しました (これは MSTest で動作します)。基本的には、まずモック オブジェクトを準備し、メソッドが呼び出すメソッドをセットアップする必要があります。

最初はモッキングツールを使ってプログラミングするのはかなり奇妙かもしれませんが、一度慣れると、それがどれほど価値があるかがわかります。最初に単体テストを理解しようとする必要があります。そうすれば、API のモックについてよりよく理解できるようになります。そのためには、Roy Osherove によるThe Art of Unit Testingをご覧になることをお勧めします。

それはそれについてです。よろしく。

于 2012-04-27T06:28:52.133 に答える