为什么nightmare.js示例不起作用?

时间:2015-11-16 20:42:12

标签: node.js mocha chai nightmare

var Nightmare = require('nightmare');
var expect = require('chai').expect; // jshint ignore:line 

describe('test yahoo search results', function() {
  it('should find the nightmare github link first', function*() {
    var nightmare = Nightmare()
    var breadcrumb = yield nightmare
      .goto('http://yahoo.com')
      .type('input[title="Search"]', 'github nightmare')
      .click('.searchsubmit')
      .wait('.url.breadcrumb')
      .evaluate(function () {
        return document.querySelector('.url.breadcrumb').innerText;
      });
    expect(breadcrumb).to.equal('github.com');
  });
});

为什么此测试总是评估为true?

即使我更改了比较值,此测试也会评估为true。如果我在期望之前添加一个console.log,它就不会打印,这使我的测试永远不会被评估,并且对于chai,null响应是正确的。我正在运行节点v4.2.2,以及最新版本的噩梦和期待。我使用mocha index.js(该文件的名称)从终端运行测试。

1 个答案:

答案 0 :(得分:4)

function*yield是一个名为Generators的ES2015功能。

在README上的示例之后还有一个注释:

  

请注意,这些示例正在使用Mocha的mocha-generators包,它可以支持生成器。

因此您需要安装软件包并将其添加到您的代码中:

require('mocha-generators').install();