Вы не можете проверить это то, что работает вечно.
Когда вы сталкиваетесь с фрагментом кода, который трудно (или невозможно) протестировать, вы должны: -
Если основной цикл в вашей игре проходит только один раз, это сразу станет очевидным при запуске.
:) У меня был этот запрос несколько месяцев назад.
Короткий ответ: нет простого способа проверить это. Вы тестируете драйв по внутренностям петли. Затем вы добавляете это в метод цикла & amp; выполните ручную проверку того, что цикл работает, пока не произойдет условие завершения.
Наше решение для проверки цикла, который выходит только из сигналов, заключалось в том, чтобы заглушить метод условия выхода, чтобы возвращать false в первый раз, но true во второй раз, гарантируя, что цикл выполняется только один раз.
Класс с бесконечным циклом:
class Scheduling::Daemon
def run
loop do
if daemon_received_stop_signal?
break
end
# do stuff
end
end
end
спецификация, проверяющая поведение цикла:
describe Scheduling::Daemon do
describe "#run" do
before do
Scheduling::Daemon.should_receive(:daemon_received_stop_signal?).
and_return(false, true) # execute loop once then exit
end
it "does stuff" do
Scheduling::Daemon.run
# assert stuff was done
end
end
end