Я пишу тест контроллера для приложения rails 3.1 с использованием testunit 2.4.0.ArgumentError: сообщение assert должно быть String или Proc using assert_select
Я хочу утверждать, что определенный заголовок не отображается на странице.
Я использую assert_select так:
assert_select 'h1', {:text => /Key Dates/, :count => 0}
и получаю следующее сообщение об ошибке:
ArgumentError: assertion message must be String or Proc: <</Key Dates/>
expected but was <"Planner Maternity leave">.>(<Test::Unit::Assertions::AssertionMessage>)
Я гусеничный это сводится к тому, что assert_select
вызовы build_message
, который создает экземпляр AssertionMessage
и передает его на тестовое устройство assert
. Однако в версии 2.2 testunit (февраль 2011 г.) были добавлены проверки, которые проверяют тип переданного сообщения. Эти проверки запускают ArgumentError
, описанные выше.
Я не уверен, что ошибка связана с тем, что тестовый блок является чрезмерно строгим или assert_select передает неправильный тип объекта.
Можете ли вы посоветовать, как лучше всего следить за этим? Какие-нибудь работы?
ли проблема что значение в ': text' должно быть строкой, а не шаблоном? – jefflunt
Привет, нет, это вполне приемлемо для: текст должен быть регулярным – heathd