0

これは私のユニットテストです:

    [TestCategory("Repo")]
    [TestMethod]
    [ExpectedException(typeof(System.ServiceModel.FaultException))]
    public void RepoUnitTest_ExpectError()
    {
        var repo = new CreateClientRepository(ClientServiceWrapper);

        IClientObject input = new ClientObject
        {
            ClientId = 0,
            ClientName = null
        };

        repo.CreateClient(input);
    }

クライアント リポジトリに無効な入力を提供すると、サード パーティのクライアント サービスが呼び出され、クライアント サービスがエラーをスローすることが予想されます。また、クライアント サービスも例外をスローしますが、期待どおりではありません。「System.ServiceModel.FaultException」を期待していますが、次のようになります。

Test method RepoUnitTest_ExpectError threw exception 
System.ServiceModel.FaultException`1[[System.ServiceModel.ExceptionDetail, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]],
but exception System.ServiceModel.FaultException was expected.

「ExpectedException」に何を入れればよいかわからないため、この単体テストは正しく予想される例外で合格します。

4

1 に答える 1

1

この質問を投稿する前にさらに数分待つべきだったと思いますが、そうしてよかったです。今では、同様の問題に出くわした人と知識を共有できます.

予想される例外は、次のように記述する必要があります (この特定のケースの場合)。

[ExpectedException(typeof(System.ServiceModel.FaultException<
System.ServiceModel.ExceptionDetail>))]
于 2016-12-02T21:30:12.687 に答える