期望真值数组为真
Expect Array of true values to be true
我有一个功能,用于检查页面上是否应该包含所有元素。
/**
* Elements are Displayed
*/
elementsDisplayed() {
let elements = [
this.emailTextField,
this.pwordTextField,
this.signInBtn,
this.forgotLink,
];
let elementsDisplayed = elements.map(function(element) {
return element.isDisplayed();
});
let bundledPromise = protractor.promise.all(elementsDisplayed)
return bundledPromise
}
当我调用此函数时,它返回一个包含四个真值的数组。现在我正在调用这个函数并期待它 .toEqual([true, true, true, true])
有没有办法验证数组中的每一项都是.toBe(true)
?我尝试了以下但失败了。我必须检查的功能是:
describe('Login Tests', () => {
it('Validate Login Page Elements', () => {
let elementsVisible = loginPage.elementsDisplayed();
_.forEach(elementsVisible, function(value) {
expect(value).toBe(true);
})
});
});
输出正在检查超过 4 个项目;它是一大堆 expected null to be true
、expected undefined to be true
、expected 'pending' to be true
等
我做错了什么?
这个
let elementsVisible = loginPage.elementsDisplayed();
将从 elementsDisplayes()
返回的承诺分配给 elementsVisible
还有这个
_.forEach(elementsVisible ...
枚举该承诺的属性。
要获得承诺的价值,您必须使用 then
loginPage.elementsDisplayed().then(elementsVisible => {
_.forEach(elementsVisible, function(value) {
expect(value).toBe(true);
})
})
但是你的测试需要知道 expect
在异步回调中被调用 - 我不知道如何在量角器中进行异步测试,抱歉。
所以这是我们修复它的方法,我们将 elementsDisplayed
方法更改为如下所示:
/**
* Elements are Displayed
*/
elementsDisplayed() {
let elements = [
this.emailTextField,
this.pwordTextField,
this.signInBtn,
this.forgotLink,
];
let elementsDisplayed = elements.map(function(element) {
return element.isDisplayed();
});
return protractor.promise.all(elementsDisplayed).then(result => {
console.log(result);
return _.every(result)
});
}
我有一个功能,用于检查页面上是否应该包含所有元素。
/**
* Elements are Displayed
*/
elementsDisplayed() {
let elements = [
this.emailTextField,
this.pwordTextField,
this.signInBtn,
this.forgotLink,
];
let elementsDisplayed = elements.map(function(element) {
return element.isDisplayed();
});
let bundledPromise = protractor.promise.all(elementsDisplayed)
return bundledPromise
}
当我调用此函数时,它返回一个包含四个真值的数组。现在我正在调用这个函数并期待它 .toEqual([true, true, true, true])
有没有办法验证数组中的每一项都是.toBe(true)
?我尝试了以下但失败了。我必须检查的功能是:
describe('Login Tests', () => {
it('Validate Login Page Elements', () => {
let elementsVisible = loginPage.elementsDisplayed();
_.forEach(elementsVisible, function(value) {
expect(value).toBe(true);
})
});
});
输出正在检查超过 4 个项目;它是一大堆 expected null to be true
、expected undefined to be true
、expected 'pending' to be true
等
我做错了什么?
这个
let elementsVisible = loginPage.elementsDisplayed();
将从 elementsDisplayes()
返回的承诺分配给 elementsVisible
还有这个
_.forEach(elementsVisible ...
枚举该承诺的属性。
要获得承诺的价值,您必须使用 then
loginPage.elementsDisplayed().then(elementsVisible => {
_.forEach(elementsVisible, function(value) {
expect(value).toBe(true);
})
})
但是你的测试需要知道 expect
在异步回调中被调用 - 我不知道如何在量角器中进行异步测试,抱歉。
所以这是我们修复它的方法,我们将 elementsDisplayed
方法更改为如下所示:
/**
* Elements are Displayed
*/
elementsDisplayed() {
let elements = [
this.emailTextField,
this.pwordTextField,
this.signInBtn,
this.forgotLink,
];
let elementsDisplayed = elements.map(function(element) {
return element.isDisplayed();
});
return protractor.promise.all(elementsDisplayed).then(result => {
console.log(result);
return _.every(result)
});
}