2011-09-29 13 views
5

का उपयोग कर स्ट्रिंग या प्रो होना चाहिए, मैं testunit 2.4.0 का उपयोग कर रेल 3.1 ऐप के लिए नियंत्रक परीक्षण लिख रहा हूं।ArgumentError: asserttion संदेश 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 तक पास करता है। हालांकि टेस्ट्यूनिट (फरवरी 2011) के संस्करण 2.2 में चेक जोड़े गए थे जो पारित संदेश के प्रकार की जांच करते हैं। ये चेक ऊपर देखे गए ArgumentError को ट्रिगर करते हैं।

मुझे यकीन नहीं है कि गलती परीक्षण इकाई के साथ अधिक सख्त या assert_ गलत ऑब्जेक्ट प्रकार को पार करने का चयन करती है या नहीं।

क्या आप सलाह दे सकते हैं कि इसका पालन कैसे किया जाए? कोई काम-आसपास?

+0

समस्या है कि 'टेक्स्ट' में मान एक स्ट्रिंग माना जाता है, न कि पैटर्न? – jefflunt

+0

हाय, नहीं, यह काफी स्वीकार्य है: पाठ को Regexp होना – heathd

उत्तर

0

तो, assert_select documentation निम्न उदाहरण दिखाता है, में एक ब्लॉक गुजर:

assert_select "ol" do |elements| 
    elements.each do |element| 
    assert_select element, "li", 4 
    end 
end 

तो अगर यह पैटर्न पाता है क्या हुआ अगर आप कुछ किया की तरह

assert_select 'h1' do |elements| 
    elements.length == 0 ? fail 
    elements.each do |element| 
    element.text ~= /Key Dates/ ? fail 
    end 
end 

कौन सा मूल रूप से विफल रहता है ... या यदि h1 तत्वों की संख्या शून्य है। जाहिर है आप परिस्थितियों को उस मिलान के लिए बदल देंगे जो आप परीक्षण करने की कोशिश कर रहे हैं, लेकिन क्या आपको वह चाहिए जो आपको चाहिए?

0

आप एक बग-मुक्त संस्करण के लिए अपग्रेड नहीं कर सकते हैं, तो आप सिर्फ एक तीसरा तर्क (संदेश), पारित कर सकते हैं तो आप के लिए मजबूर नहीं है संदेश का निर्माण किया:

assert_select 'h1', {:text => /Key Dates/, :count => 0}, "Unexpected Key Dates found."

संबंधित मुद्दे