Rspec: запускать тест, только если условие сеанса истинно - PullRequest
1 голос
/ 19 октября 2011

Скажите, что у меня есть группа примеров.Эта группа проверяет, чтобы убедиться, что на каждой странице сайта есть правильное меню.

Проблема в том, что меню не идентично на каждой странице, просто почти идентично.Исключением является то, что в меню нет ссылки на страницу, которую вы сейчас тестируете.Таким образом, этот тест необходимо пропустить.В качестве компонента пакета тестирования у меня есть полный список всех ссылок.

Как лучше всего это проверить?Обычно, я бы просто сгенерировал тест условно, но, поскольку он зависит от контекста (идентификатора страницы) того, куда включен общий пример, к тому времени, когда у меня будет этот бит необходимой информации, уже слишком поздно делать это.Я мог бы сделать тест, как link_list.each do | link |он «должен существовать на этой странице, если только эта страница не входит в список исключений». do if (@ session.not_on (list)) @ session.should not_have_link (link) else @ session.should have_link (link) end end end end

но я думаю, что такого рода двусмысленные тесты лучше избегать.К этому моменту я буду ЗНАЕТ, какое поведение ожидать, так как я могу проверить, есть ли страница сеанса в списке или нет, но я не знаю, как это выразить.

Что я могусделать, чтобы получить поведение, которое я хочу?

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