2
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 応答が true であることがわかります。私はノード v4.2.2 と最新バージョンの悪夢と期待を実行しています。mocha index.js (このファイルの名前) を使用してターミナルからテストを実行します。

4

1 に答える 1

4

function*Generatorsyield呼ばれる ES2015 の機能です。

README の例の後に追加のメモがあります。

例では、ジェネレーターのサポートを有効にする Mocha 用のmocha-generatorsパッケージを使用していることに注意してください。

したがって、パッケージをインストールして、これをコードに追加する必要があります。

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

于 2015-11-19T06:38:29.023 に答える