Бросить исключение или Assert.Fail, если не выполнены предварительные условия для тестов - PullRequest
1 голос
/ 22 марта 2012

У меня есть несколько тестов NUnit, которые запускают Selenium.

Есть некоторые предпосылки для некоторых тестов. Примером этого может быть вход на наш сайт.

Мы используем стандартного тестового пользователя для теста A, но если этого пользователя по какой-либо причине не существует, мы получим тестовый сбой без всякой пользы (Selenium просто сообщит, что не смог найти элемент в строке 50). ). Поэтому я планировал проверить существование пользователя, прежде чем пытаться запустить тест - в методе TextFixtureSetUp.

У меня есть проверка, чтобы убедиться, что пользователь существует, и если нет, выведите полезное сообщение об ошибке. Например:

    [TestFixtureSetUp]
    public void SetUp()
    {
        bool userExists = userManager.GetUserByEmailAddress("someuser@fish.com") != null;
        if (!userExists)
        {
            throw new Exception("Test user someuser@fish.com doesn't exist.");
        }
    }

против

    [TestFixtureSetUp]
    public void SetUp()
    {
        bool userExists = userManager.GetUserByEmailAddress("someuser@fish.com") != null;
        if (!userExists)
        {
            Assert.Fail("Test user someuser@fish.com doesn't exist.");
        }
    }

Мой вопрос, это хорошая идея? Должен ли я генерировать исключение или использовать Assert.Fail ()? Думаю ли я об этом неправильно, или это что-то не имеет значения на самом деле .

1 Ответ

0 голосов
/ 22 марта 2012

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

Причина сбоя asserrt - когда пользователь не найден, это означает конец тестовой модели.* Если вы пойдете по пути исключения - подумайте, что GetUserByEmailAddress будет выбрасывать его, если он не найдет нужного пользователя ...

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