Телеграм чат начинающих программистов. Общаемся и помогаем друг другу
Если ссылка не открывается, можно найти нас в поиске по чатам @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