2010-05-29 16 views
5

मैंने अपने रेल ऐप के लिए कुछ मचान पैदा किया है।मेरे कार्यात्मक परीक्षण क्यों विफल हो रहे हैं?

मैं जेनरेट किए गए परीक्षण चला रहा हूं और वे असफल हो रहे हैं।

उदाहरण के लिए

test "should create area" do 
    assert_difference('Area.count') do 
     post :create, :area => { :name => 'area1' } 
    end 

    assert_redirected_to area_path(assigns(:area)) 
    end 

इस परीक्षण में विफल कह रही है कि:

1) विफलता: test_should_create_area (AreasControllerTest) [/test/functional/areas_controller_test.rb:16]: "Area.count" 1. < 3> द्वारा नहीं बदला गया था लेकिन < 2> था।

मॉडल में केवल एक फ़ील्ड है: नाम। मैं इसे पॉप्युलेट कर रहा हूं इसलिए ऐसा नहीं हो सकता क्योंकि मैं एकमात्र क्षेत्र को पॉप्युलेट करने में असफल रहा हूं।

मैं साइट चला सकता हूं और 'region1' नाम के साथ एक क्षेत्र बना सकता हूं। तो वास्तविकता सफल हो रही है, लेकिन परीक्षण विफल रहा है।

मैं नहीं पूछ सकता कि यह क्यों विफल रहा है, क्योंकि मुझे यकीन है कि यहां किसी के लिए यहां पर्याप्त जानकारी नहीं है। मैं सिर्फ यह जानने के लिए अटक गया कि परीक्षण में असफल होने के कारण काम करने के लिए क्या रास्ता नीचे जाना है। यहां तक ​​कि कोड में डालने से प्रिंट नहीं किया जाता है ...

इसे ट्रैक करने के लिए मैं क्या कदम उठा सकता हूं?

+0

test.log से आउटपुट यहां सहायक होना चाहिए, ताकि आप देख सकें कि वास्तव में कोई क्षेत्र बनाया जा रहा है या यदि कुछ एसक्यूएल त्रुटि खाई जा रही है। – jdl

+0

आहाह ... ठीक है कि मदद करता है। Test.log मुझे दिखाता है कि परीक्षण विफल हो रहा है क्योंकि मैं लॉग इन नहीं हूं। मैंने इसे सेट अप किया है ताकि केवल प्रमाणित उपयोगकर्ता ही क्षेत्र बना सकें .. सभी समझ में आता है। आपको इसे एक उत्तर देना चाहिए ताकि मैं इसे स्वीकार कर सकूं! धन्यवाद –

उत्तर

2

ऊपर दिए गए अनुरोध के अनुसार, और जो कुछ मैं उम्मीद कर रहा था उससे मेल खाता हूं कि जब आप अपने लॉग में खोलेंगे, तो आपके पास एक प्राधिकरण है जो आपके परीक्षण में पूरा नहीं हो रहा है।

1

@request और @response भी आपके परीक्षण के अंदर (यानी puts @response) देखने के लिए उपयोगी वस्तुएं हैं। मुझे नहीं पता कि आप किस प्रमाणीकरण का उपयोग कर रहे हैं, लेकिन authenticated_test_helper, या /lib, या /test अपने प्रमाणीकरण मणि के लिए जांचें। आपको लॉगिन करने के लिए विधियां मिलेंगी।

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