Обработка исключений в FitNesse - PullRequest
3 голосов
/ 20 июня 2010

Это вопрос новичка FitNesse, так что откройся со мной. Гойко Адзич в своей книге Разработка на основе тестов .NET с FitNesse дает несколько основных советов по сокращению кода теста. Есть метод с именем LogIn, который на основе имени пользователя и пароля возвращает идентификатор игрока или выдает исключение, когда такого зарегистрированного игрока нет. Вот начальная версия тестового кода:

public class CheckLogIn : fit.ColumnFixture
{
    public string username;
    public string password;

    public int LoggedInAsPlayerId()
    {
        try
        {
            SetUpTestEnvironment.playerManager.LogIn(username, password);
            return true;
        }
        catch (Exception)
        {
            return false;
        }
    }
}

Затем он заменяется более короткой версией:

public class CheckLogIn : fit.ColumnFixture
{
    public string username;
    public string password;

    public int LoggedInAsPlayerId()
    {
        return SetUpTestEnvironment.playerManager.LogIn(username, password);
    }
}

Теперь ко второму тесту добавлен бонус проверки правильности идентификатора, но он не позволяет проверить, отклоняет ли система неизвестный пользователь / неправильный пароль. Есть ли какое-либо специальное значение, которое можно использовать в столбце для указания исключения? Или мне нужно объединить оба теста, чтобы охватить все сценарии? Я помню, хотя и смутно, в этот самый момент был какой-то шаблон модульного тестирования для обработки исключений, но я уверен, что кто-то уже спрашивал об этом, поэтому я не хочу дублировать. Если сообщество не согласится с этим, пожалуйста, предложите лучшую практику для тестирования таких методов.

На случай, если мне неясно:

Допустим, у меня есть один зарегистрированный игрок: john.doe/test123/101 (имя пользователя / пароль / идентификатор). Две комбинации, с которыми я хотел бы протестировать систему: john.doe/test123/101 и john.doe/johnny/<WrongUserOrPasswordException>

1 Ответ

1 голос
/ 21 июня 2010

Есть два ключевых слова фикстуры, которые позволяют проверять исключения:

  • error - когда во время теста должно быть сгенерировано исключение
  • exception - для проверки конкретного исключения

Это было действительно хорошо объяснено на следующей странице книги ... Мое плохо, что я не заметил этого сразу. Может быть, кто-то найдет эту информацию полезной, поэтому я не удаляю вопрос.

...