Почему я получаю это "NUnit.Framework.SuccessException", пытаясь отладить тест NUNIT? - PullRequest
0 голосов
/ 28 декабря 2018

Я довольно новичок в NUNIT , и я испытываю следующее странное поведение.

В моем тестовом проекте у меня есть этот тестовый класс:

namespace Tests
{
    public class Tests
    {
        [SetUp]
        public void Setup()
        {
        }

        [Test]
        public void Test1()
        {
            Assert.Pass("PASSED");
        }

    }
}

, которыйна данный момент содержит только метод Test1 () , который должен проходить каждый раз при его выполнении (потому что я использую метод Assert.Pass () .

Если я запускаю этот тест, он отлично работает и проходит тест (зеленая полоса в Visual Studio Test Explorer).

Но если я попытаюсь отладить этот метод (добавив точку нарушения в Assert.Pass ("PASSED "); строка дает мне это исключение при попытке выполнить метод Pass ():

Exception thrown: 'NUnit.Framework.SuccessException' in nunit.framework.dll
An exception of type 'NUnit.Framework.SuccessException' occurred in nunit.framework.dll but was not handled in user code
PASSED

В любом случае, проверка, похоже, пройдена. Но почему я получаю это исключение в режиме отладки?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Всегда полезно прочитать документацию по используемому методу:

/// <summary>
/// Throws a <see cref="SuccessException"/> with the message and arguments
/// that are passed in. This allows a test to be cut short, with a result
/// of success returned to NUnit.
/// </summary>

https://github.com/nunit/nunit/blob/master/src/NUnitFramework/framework/Assert.cs#L105

0 голосов
/ 28 декабря 2018

Assert.Pass действительно выдает исключение, которое позволяет вам отправить сообщение организатору теста.Вы очень редко должны использовать Assert.Pass, поскольку вам не нужно делать это для прохождения теста.Вместо этого вы можете позволить тесту завершиться.

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

Из документации ...

Поскольку это вызывает исключение, оно более эффективнопросто позволить тесту вернуться

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