2017-04-20 18 views
1

私たちは、スペクトロンとWebdriverIOを使った電子アプリの簡単な「チャイテスト」です。 https://github.com/jwood803/ElectronSpectronDemo/issues/2で報告されているように使い始めたのコード例は、なぜこれらのチャイテストは失敗しますか?

https://github.com/jwood803/ElectronSpectronDemoからである、と約束チャイ-として-テストは、ミスマッチをキャッチされていないので、私は、私はチャイがテスト失敗しない理由を確認するためにいくつかの追加のテストを追加するだろうと思いました電子アプリには、期待される単位テストテキストと一致しないテキストがあります。 https://github.com/drjasonharrison/ElectronSpectronDemo

describe('Test Example', function() { 
    beforeEach(function (done) { 
     app.start().then(function() { done(); }); 
    }); 

    afterEach(function (done) { 
     app.stop().then(function() { done(); }); 
    }); 

    it('yes == no should fail', function() { 
     chai.expect("yes").to.equal("no"); 
    }); 

    it('yes == yes should succeed', function() { 
     chai.expect("yes").to.equal("yes"); 
    }); 

最初のユニットテストが失敗したが、第二に成功した時に

のは本当に簡単なものから始めましょうは、コードの残りの部分はあります。

そして、我々は関数にアサーションを入れたときに、これはまだ障害を検出:電子、webdriverio、およびSpectronのの世界に今そう

it('should fail, but succeeds!?', function() { 
    function fn() { 
     var yes = 'yes'; 
     yes.should.equal('no'); 
    }; 
    fn(); 
}); 

、アプリケーションのタイトルは、「Hello Worldのことになっています! 」、これは失敗するはずですが、それが渡されます。

it('tests the page title', function() { 
    page.getApplicationTitle().should.eventually.equal("NO WAY"); 
}); 

うーん、のがより身近なテストを試してみましょう:

出力:

✓ should fail, waitUntilWindowLoaded, yes != no 
txt = Hello World! 

成功しましたか?何?どうして?どうやって?

答えて

1

見つけました! https://github.com/webdriverio/webdriverio/blob/master/examples/standalone/webdriverio.with.mocha.and.chai.js

を見ると、各テストから約束を返す必要があることがわかります。

it('tests the page title', function() { 
    return page.getApplicationTitle().should.eventually.equal("NO WAY"); 
}); 

これを行うと、実際にチャイテストが正しく評価されます。

+0

私はwebdriverioがここにいるとは思わない。これは、非同期のモカテストで私が約束したことを忘れるときに観察した動作のようです。 – Rhayene

+0

@Rhayene - 正しい、私は編集を介して明確にしようとしました。 –

関連する問題