में आइटम की अपेक्षा करें मेरे परीक्षण में से एक त्रुटि संदेश पाठ को कई मानों में से एक होने की अपेक्षा करता है। चूंकि getText()
एक वचन देता है मैं toContain()
जैस्मीन मैचर का उपयोग नहीं कर सकता।सरणी
expect(["Unknown Error", "Connection Error"]).toContain(page.errorMessage.getText());
प्रश्न:: निम्नलिखित के बाद से protractor
(jasminewd
अंडर-हुड) इस मामले में मिलान, toContain()
के दूसरे भाग में एक वादा का समाधान नहीं होगा कार्य नहीं करेगा वहाँ जाँच करने के लिए एक रास्ता है यदि कोई तत्व जैस्मीन + प्रोटैक्टर के साथ एक सरणी में है जहां एक तत्व एक वादा है?
दूसरे शब्दों में, मैं toContain()
का प्रतिलोम के लिए देख रहा हूँ ताकि expect()
परोक्ष वादा में पारित हल होगा
समाधान के लिए, मैं स्पष्ट रूप से then()
साथ वादा हल कर सकते हैं:।
page.errorMessage.getText().then(function (text) {
expect(["Unknown Error", "Connection Error"]).toContain(text);
});
मुझे यकीन नहीं है कि यह सबसे अच्छा विकल्प है या नहीं। मैं jasmine-matchers
जैसे तृतीय पक्षों के आधार पर समाधान के साथ भी ठीक रहूंगा।
उदाहरण के लिए, जोर इस तरह का अजगर में मौजूद है:
self.assertIn(1, [1, 2, 3, 4])
'चाई-ए-वादा किया गया' –
@ बेंजामिनग्रेनबाम का उपयोग करें यदि आप एक उदाहरण के साथ एक उत्तर में सुझाव का विस्तार कर सकते हैं - यह बहुत अच्छा होगा, क्योंकि यह कस्टम मैचर के लिए एक वैध वैध विकल्प विकल्प की तरह लगता है। धन्यवाद! – alecxe
आम तौर पर मुझे पुस्तकालयों को प्रश्नों के उत्तर के रूप में पेश करना पसंद नहीं है क्योंकि इससे लाइब्रेरी-सिफारिशें प्रश्न पूछती हैं - मैंने कहा कि मुझे लगता है कि वास्तव में यह शायद इस मामले में सबसे अच्छा विकल्प है। –