2016-12-02 176 views
0

這是我的單元測試:單元測試預計System.ServiceModel.FaultException

[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」所以這個單元測試通過用正確的預期異常。

回答

0

猜猜在發佈這個問題之前,我應該等待幾分鐘,但我很高興,現在我可以與誰在類似問題上遇到困難的人分享知識。

預期的異常應該這樣寫(對於這種特殊情況下):

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