2016-12-02 5 views
0

Это мой блок Тест:Unit Test ожидает 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>))]