Тест Windows Phone не пройден - PullRequest
0 голосов
/ 27 марта 2012

После этого учебного пособия и возникновения проблем.

 [TestMethod]
    [ExpectedException(typeof(Exception))]
    public void VerifyPropertyNameMethod_NonExistentPropertyString_ThrowsException()
    {
        var customer = new Customer() { FirstName = "June", LastName = "Smith" };
        var sut = new CustomerViewModel(_customerRepository, customer);
        sut.VerifyPropertyName("NonExistentPropertyName");

    }

Проверка завершается неудачно с сообщением, показанным ниже.Тест обвиосулы выдает исключение, но он должен!Почему тест не проходит?

 VerifyPropertyNameMethod_NonExistentPropertyString_ThrowsException : FailedTest method FirstOnSiteWindowsPhoneApp.AppCode.Tests.Unit.CustomerViewModelTests.VerifyPropertyNameMethod_NonExistentPropertyString_ThrowsException threw exception: 
FirstOnSiteWindowsPhoneApp.AppCode.Domain.VerifyPropertyNameException: Exception of type 'FirstOnSiteWindowsPhoneApp.AppCode.Domain.VerifyPropertyNameException' was thrown.
at FirstOnSiteWindowsPhoneApp.AppCode.ViewModel.CustomerViewModel.VerifyPropertyName(String propertyName) in CustomerViewModel.cs: line 29
at FirstOnSiteWindowsPhoneApp.AppCode.Tests.Unit.CustomerViewModelTests.VerifyPropertyNameMethod_NonExistentPropertyString_ThrowsException() in CustomerViewModelTests.cs: line 53

1 Ответ

4 голосов
/ 27 марта 2012

Ваше ожидаемое исключение неправильного типа. Должно быть:

[ExpectedException(typeof(VerifyPropertyNameException))]

Это то, что показано в учебнике, поэтому я не уверен, почему вместо этого у вас есть typeof(Exception) ...

ExpectedException ожидает в точности указанного типа исключения, а не только что-либо вытекающего из него. Обратите внимание, что лично я предпочитаю Assert.Throws<...>(() => ...), так как таким образом вы ограничиваете объем кода, который должен генерироваться, но это отдельный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...