Protractor returns 成功,即使 expect 失败
Protractor returns success even when expect fails
我是量角器的新手,我正在尝试用它和黄瓜安装一个项目。
场景如下
Scenario: User login
Given the page is open
And email is set with value n@n.com
And password is set with value 123
When the user click on login button
Then home page is displayed
步骤定义已实现,login_page.js如下
var chai = require('chai').use(require('chai-as-promised'));
var expect = chai.expect;
var LoginPage = function() {
this.get = function() {
browser.get('https://aaa/login');
};
this.setEmail = function(value) {
element(by.id('login-email')).sendKeys(value);
};
this.setPassword = function(value) {
element(by.id('login-password')).sendKeys(value);
};
this.clickAccede = function() {
element(by.id('login-submit')).click()
};
this.pageIsLoaded = function() {
browser.waitForAngular();
expect(browser.getTitle()).to.be.eventually.equals('page title');
};
};
然后当我 运行 我收到以下结果的场景
Scenario: User login
✔ Given the page is open
✔ And email is set with value n@n.com
✔ And password is set with value 123
✔ When the user click on login button
✔ Then home page is displayed
1 scenario (1 passed)
5 steps (5 passed)
0m00.005s
[16:23:50] E/launcher - expected 'aaa' to equal 'page title'
[16:23:50] E/launcher - AssertionError: expected 'aaa' to equal 'page title'
[16:23:50] E/launcher - Process exited with error code 199
如您所见,断言失败但结果 return 成功。
我错过了什么?
@Bharath
我的步骤定义
this.Then(/^shipment page is displayed$/, function (callback) {
expect(browser.getTitle()).to.be.eventually.equals('page title');
callback();
});
this.Then(/^shipment page is displayed$/, function () { return expect(browser.getTitle().then((value)=>{
console.log(value);return value;
})).to.be.eventually.equals('page title'); });
使用这个并检查
我是量角器的新手,我正在尝试用它和黄瓜安装一个项目。
场景如下
Scenario: User login
Given the page is open
And email is set with value n@n.com
And password is set with value 123
When the user click on login button
Then home page is displayed
步骤定义已实现,login_page.js如下
var chai = require('chai').use(require('chai-as-promised'));
var expect = chai.expect;
var LoginPage = function() {
this.get = function() {
browser.get('https://aaa/login');
};
this.setEmail = function(value) {
element(by.id('login-email')).sendKeys(value);
};
this.setPassword = function(value) {
element(by.id('login-password')).sendKeys(value);
};
this.clickAccede = function() {
element(by.id('login-submit')).click()
};
this.pageIsLoaded = function() {
browser.waitForAngular();
expect(browser.getTitle()).to.be.eventually.equals('page title');
};
};
然后当我 运行 我收到以下结果的场景
Scenario: User login
✔ Given the page is open
✔ And email is set with value n@n.com
✔ And password is set with value 123
✔ When the user click on login button
✔ Then home page is displayed
1 scenario (1 passed)
5 steps (5 passed)
0m00.005s
[16:23:50] E/launcher - expected 'aaa' to equal 'page title'
[16:23:50] E/launcher - AssertionError: expected 'aaa' to equal 'page title'
[16:23:50] E/launcher - Process exited with error code 199
如您所见,断言失败但结果 return 成功。 我错过了什么?
@Bharath 我的步骤定义
this.Then(/^shipment page is displayed$/, function (callback) {
expect(browser.getTitle()).to.be.eventually.equals('page title');
callback();
});
this.Then(/^shipment page is displayed$/, function () { return expect(browser.getTitle().then((value)=>{
console.log(value);return value;
})).to.be.eventually.equals('page title'); });
使用这个并检查