2009-01-07 4 views
6

यह सुनिश्चित करने का सबसे अच्छा तरीका क्या है कि नियंत्रक कार्रवाई में उचित आरजेएस उत्पन्न हो रहा है?आरएसपीसी नियंत्रक चश्मे में आरजेएस का परीक्षण करने का सबसे अच्छा तरीका?

उदाहरण के लिए, मैं यह सुनिश्चित करें कि एक div जैसे हाइलाइट किया गया है चाहता हूँ:

def new 
    render :update do |page| 
    page.visual_effect :highlight, :some_div 
    end 
end 

शेख़ी: यह जल्दी कारणों मैं RSpec थक बढ़ने में से एक होता जा रहा है एक वर्ष के लिए उपयोग करने के बाद । यह एक आसान सवाल होना चाहिए, लेकिन यह एक ऐसा है जिसके लिए कोई जवाब नहीं देता है।

मुझे बार-बार कहा गया है कि आरएसपीसी व्यवहार को निर्दिष्ट करता है और मैं यहां क्या करने की कोशिश कर रहा हूं वह सिर्फ "परीक्षण कोड" है। की हाइलाइटिंग: some_div व्यवहार है जहां तक ​​मैं कह सकता हूं।

उत्तर

4

क्या प्रतिक्रिया के आउटपुट के लिए नियंत्रक परीक्षण सेट करना संभव नहीं है और कुछ जावास्क्रिप्ट स्वरूपण को देखना संभव है?

xhr :get, :new 
    response.should be_success 
    response.should have_text("... test for JS response ...") 

मैं भी शायद सेलेनियम का प्रयोग करेंगे और अधिक पूरी तरह ग्राहक पर इस परीक्षण करने के लिए, और नियंत्रक परीक्षण एक "विवेक" चेक की अधिक है।

+0

मैंने यह कोशिश की है, लेकिन मैं केवल दृश्य प्रभावों का परीक्षण कर सकता हूं; प्रतिस्थापित नहीं करें Ihtml, आदि। मैं परीक्षण कर सकता हूं कि कुछ बदल दिया जा रहा है, लेकिन आंशिक नाम, स्थानीय, आदि नहीं –

+0

हाँ, यह आदर्श नहीं है ... मैं इस परीक्षण का अधिकांश सेलेनियम को धक्का देता हूं और केवल नियंत्रक परीक्षणों को रखता हूं एक बहुत ही उच्च स्तर पर, सामान्य अनुप्रयोग प्रवाह का परीक्षण। –

4

rspec आपको है_आरजेएस सहायक है जो assert_select_rjs को लपेटता है। यहाँ कुछ बारीकियों हैं:

http://jonathan.tron.name/2007/11/24/rspec-and-inline-rjs

दुर्भाग्य से केवल assert_select_rjs को शामिल किया गया:

:replace, :replace_html, :show, :hide, :toggle, :remove and :insert_html 

तो यह आपके सवाल का से visual_effect संभाल नहीं होंगे। हालांकि ARTS प्लगइन दृश्य प्रभाव का समर्थन करता है।

http://github.com/timocratic/arts/tree/master

आप गठबंधन करने के लिए सक्षम होना चाहिए कि rspecs नए 'कल्पना/इंटरॉप/परीक्षण' के साथ।

http://blog.davidchelimsky.net/2009/2/2/rspec-works-with-test-unit