我正在写一个使用testunit 2.4.0的rails 3.1应用程序的控制器测试。ArgumentError:断言消息必须是字符串或PROC使用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
。然而,在testunit版本2.2(2011年2月)中添加了检查传入的消息类型的检查。这些检查触发上面看到的ArgumentError
。
我不确定错误在于测试单元是否过度严格或者assert_select是否传递了错误的对象类型。
你能建议如何最好地遵循这个?任何解决方法?
是问题那''text'中的值应该是一个字符串,而不是一个模式? – jefflunt
嗨,不,这是完全可以接受的:文本是一个正则表达式 – heathd