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(该文件的名称)从终端运行测试。
答案 0 :(得分:4)
function*
和yield
是一个名为Generators的ES2015功能。
在README上的示例之后还有一个注释:
请注意,这些示例正在使用Mocha的mocha-generators包,它可以支持生成器。
因此您需要安装软件包并将其添加到您的代码中:
require('mocha-generators').install();