角度,量角器,黄瓜麻烦

时间:2018-09-27 14:19:34

标签: angular protractor cucumber e2e-testing cucumberjs

我对黄瓜和量角器完全陌生,以前从未编写过任何e2e测试。我在Angular中使用this libaray,但是在运行测试时遇到各种困难。

我的步骤文件如下:

const {Given, Then} = require('cucumber');
const expect = require('expect');

Given('I navigate to the homepage', function (callback) {
  browser.get('http://localhost:4200');
  callback();
});

Then('I want to see a welcome message', function (callback) {
  expect($$('h1').first().getText()).toEqual('Welcome!');
  callback();
});

,但是看来getText()是一个异步调用。 getText()似乎正在兑现承诺。

该测试应该失败,因为h1的文本不是Welcome!。当我尝试捕获诺言和expect()中的then()时,测试在应该失败的地方成功了。

关于黄瓜/量角器,网络上有很多资源,它们都说不同的话。很难知道该怎么做。实际的黄瓜文档中没有提供测试此类浏览器元素的示例。

有人可以帮忙吗?我正在使用量角器-黄瓜框架6.1.1和黄瓜5.0.1。

2 个答案:

答案 0 :(得分:0)

浏览dom,看看是否还有另一个带有文本“ Welcome!”的h1元素。测试不可能通过,并且该文本中没有这样的元素。

答案 1 :(得分:0)

更改以下步骤功能如下:

Then('I want to see a welcome message', function (callback) {
    $$('h1').first().getText().then(function(txt){
        console.log('in then() txt: ' +txt);
        expect(txt).toEqual('Welcome!');
        callback();
    });    
});

在您的方案中添加更多一行Then I want to see a welcome message 1,然后 为此添加以下步骤功能。

Then('I want to see a welcome message 1', function (callback) {
    expect($$('h1').first().getText()).resolves.toEqual('Welcome!');
    callback();
});

再次运行并告诉我console.log('in then() txt: ' +txt)的结果和输出