我正在寫一個使用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