这是失败的测试:
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
仅供参考,toBeEmptyArray()
matcher 来自jasmine-matchers
第三方。
我试图打印出scope.page.errors
这种方式的价值:
scope.page.errors.then(function (errors) {
console.log(errors);
});
并打印为[]
. Array.isArray(errors)
返回true
。
从我所见,scope.page.errors
是一个空数组,但期望失败。我错过了什么?