nUnit Утверждают. Это (метод, Броски. Исключение) не ловля исключений

Кто-то может сказать мне, почему этот модульный тест, который проверяет на сбои исключений? Очевидно, мой реальный тест проверяет другой код, но я использую Int32. Синтаксический анализ для показа проблемы.

[Test]
public void MyTest()
{
    Assert.That(Int32.Parse("abc"), Throws.Exception.TypeOf());
}

Тестовые сбои, давая эту ошибку. Очевидно, я пытаюсь протестировать на это исключение, и я думаю, что пропускаю что-то в своем синтаксисе.

Error   1   TestCase '.MyTest'
failed: System.FormatException : Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Int32.Parse(String s)

на основе документации при Ограничении Бросков (NUnit 2.5)

42
задан Jason More 25 March 2010 в 15:04
поделиться

2 ответа

Попробуйте вместо этого:

Assert.That(() => Int32.Parse("abc"), Throws.Exception.TypeOf<FormatException>());

В основном вам нужно передать делегата в Assert.That , как в документации в вашей ссылке (обратите внимание, что здесь я использовал лямбда-выражение, но оно должно быть таким же).

65
ответ дан 26 November 2019 в 23:46
поделиться

Какую программу для выполнения тестов вы используете? Не все из них работают правильно с утверждениями об исключениях.

Возможно, вам повезет больше, используя [ExpectedException (typeof (FormatException))] или даже Assert.Throws (() => Int32.Parse ("abc"));

9
ответ дан 26 November 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: