Наш чатик

Телеграм чат начинающих программистов. Общаемся и помогаем друг другу

Если ссылка не открывается, можно найти нас в поиске по чатам @rubyrush или пойти другим путем

Интегральный тест на виселицу

Давайте попробуем написать «интегральный тест». Такой, в котором тестируется не работа отдельного метода, а работа сразу нескольких методов, которые используются по ходу использования класса или его экземпляра.

Возьмите игру «Виселица» (самую последнюю свою рабочую версию) и протестируйте класс Game: напишите два теста, первый из которых симулирует выигрышное поведение пользователя, а второй — проигрыш. Проверьте, что игра перешла в нужное состояние.

Как всегда напишите rspec --init чтобы создать папку spec с нужными файлами.

После этого создайте файл game_spec.rb, в котором напишите два теста, каждый из которых будет начинаться с загадывания слова методом Game.new('загадка') (можете загадать любое слово в качестве примера).

Дальше в каждом тесте сымитируйте ходы пользователя, вызвав последовательно несколько раз метод game.next_step('я') (буквы всегда разные, ясен пень). В первом тесте пользователь должен называть буквы правильно, а во втором — нет.

В конце каждого теста проверьте статус игры и, например, количество ошибок.

Зайдите в папку виселица и запустите команду rspec или rspec spec/game_spec.rb:

$ rspec spec/game_spec.rb 
..

Finished in 0.00127 seconds (files took 0.10272 seconds to load)
2 examples, 0 failures

Вариант решения задачи