Unit Test需要System.ServiceModel.FaultException

时间:2016-12-02 21:22:03

标签: unit-testing faultexception expected-exception

这是我的单元测试:

    [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"所以这个单元测试通过正确预期的异常。

1 个答案:

答案 0 :(得分:0)

猜猜我应该在发布这个问题之前再等几分钟,但我很高兴,现在我可以与遇到类似问题的人分享知识。

应该以这种方式编写预期的异常(对于这种特殊情况):

[ExpectedException(typeof(System.ServiceModel.FaultException<
System.ServiceModel.ExceptionDetail>))]