यहाँ नाकाम रहने परीक्षा है:विफल उम्मीद: "अपेक्षित [] खाली सरणी होना चाहिए।"
describe("Checking errors", function() {
var scope = {};
beforeEach(function() {
browser.get("/#endpoint");
browser.waitForAngular();
scope.page = new MyPage();
});
it("should not show any errors", function() {
expect(scope.page.errors).toBeEmptyArray();
});
});
जहां MyPage
एक पृष्ठ वस्तु है:
var MyPage = function() {
this.errors = element.all(by.css("div.error-block b.error"))
.filter(function (elm) {
return elm.isDisplayed().then(function (value) {
return value;
});
})
.map(function (elm) {
return elm.getText();
});
};
module.exports = MyPage;
जहां errors
चाहिए होना को दिखाई त्रुटि ग्रंथों एक पृष्ठ पर पाया की एक सरणी।
Failures:
1) Checking errors should not show any errors
Message:
Expected [ ] to be empty array.
Stacktrace:
Error: Failed expectation
FYI करें, toBeEmptyArray()
मिलान jasmine-matchers
तीसरे पक्ष के से आ रही है:
यहाँ त्रुटि हम हो रही है है।
मैं इस तरह से scope.page.errors
का मूल्य प्रिंट करने की कोशिश की है:
scope.page.errors.then(function (errors) {
console.log(errors);
});
और यह []
के रूप में बाहर छपा है। Array.isArray(errors)
true
देता है।
जो मैं देखता हूं, scope.page.errors
एक खाली सरणी है, लेकिन उम्मीद विफल हो जाती है। मुझे क्या याद आ रही है?
दौड़ा अगर आप Array.isArray लॉग इन करें (आप क्या मिलता है त्रुटियों)? – Ryan
@Ryan यह उम्मीद नहीं कर रहा था, लेकिन यह 'सच' प्रिंट करता है .. अजीब। धन्यवाद। – alecxe
क्या उम्मीद है (scope.page.errors.length) .toBe (0); 'काम? हो सकता है कि आप स्कॉप्स वेबड्राइवर (जैसे किसी पृष्ठ में iframes) से किसी समस्या में भाग ले रहे हों, जिनकी अपनी "ऐरे" परिभाषा है। Http://stackoverflow.com/a/2265999/960524 देखें (इसलिए यह 'toBeEmptyArray()' विधि में एक बग हो सकता है - यह शायद चेक के "सरणी" -नेस भाग में विफल रहा है।) –