2012-05-23 12 views
8

मैं capybara में कुछ परीक्षण है कि तिथियों की सूची को सही ढंग से हल कर रहे हैं परीक्षण लिखने के लिए कोशिश कर रहा हूँ में क्रमबद्ध हो जाता। उदाहरण के लिए मेरे पास तारीखों की एक सूची है 27 जून 12, सोम 13 अगस्त 12, गुरु 31 मई 12 और जब मैं बटन पर क्लिक करता हूं तो यह शुरुआती से शुरू होने वाली तिथियों को पुनर्व्यवस्थित करेगा यानी: गुरु 31 मई 12, बुध 27 जून 12, 13 अगस्त 12.परीक्षण एक सूची को सही क्रम capybara

कैपिबारा में कोई तरीका है कि आप ऐसे परीक्षण लिख सकते हैं।

आम तौर पर मैं पेज.फिंड इत्यादि जैसी विधियों का उपयोग करता हूं लेकिन उन विधियों को केवल तिथियां मिलेंगी और आपको नहीं बताएंगी कि उन्हें सही क्रम में क्रमबद्ध किया गया है या नहीं।

उत्तर

15

आपको :nth-child सीएसएस चयनकर्ता का उपयोग करने की आवश्यकता है।

चलें कहना दिनांकों की अपनी सूची आईडी #dates के साथ एक <ul> में हैं, आप के साथ आदेश का परीक्षण कर सकते हैं:

page.should have_selector("ul#dates li:nth-child(1)", content: @date1.content) 
page.should have_selector("ul#dates li:nth-child(2)", content: @date2.content) 

अपने चयनकर्ता, दूसरा (इस उदाहरण में) है पहला मान have_selector() में पारित हो जाता आप जिस सामग्री की अपेक्षा करते हैं। उदाहरण के लिए आप सामग्री को पास करने तक सीमित नहीं हैं उदाहरण के लिए यदि प्रत्येक तिथि Date#show क्रिया से जुड़ी है तो आप url: date_path(@date) जोड़ सकते हैं।

+3

एक ही त्रुटि थी। उपरोक्त महान उत्तर लेकिन निम्न में से किसी एक का उपयोग करने की आवश्यकता है: अमान्य कुंजी: सामग्री, इनमें से एक होना चाहिए: टेक्स्ट,: दृश्यमान,: बीच, गिनती: अधिकतम, न्यूनतम,: सटीक,: मिलान, प्रतीक्षा करें – Yaron