我們有一些簡單的「這是真正的工作」柴電子應用使用spectron和WebdriverIO測試。我們開始與示例代碼是從爲什麼這些柴測試不會失敗?
https://github.com/jwood803/ElectronSpectronDemo爲https://github.com/jwood803/ElectronSpectronDemo/issues/2報道,薛寶釵,作爲許諾的測試沒有捕錯配,所以我想我會添加一些額外的測試,以找出原因柴沒有失敗的測試,其中電子應用程序的文本與預期的單元測試文本不符。
讓我們先從很簡單的東西,代碼的其餘部分是在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");
});
第一單元測試失敗,第二次成功。
而當我們把斷言成一個函數,這仍然檢測到故障:
it('should fail, but succeeds!?', function() {
function fn() {
var yes = 'yes';
yes.should.equal('no');
};
fn();
});
所以現在到電子,webdriverio和SPECTRON的世界裏,應用程序標題應該是「世界,你好! 」,所以這應該會失敗,但它傳遞:
it('tests the page title', function() {
page.getApplicationTitle().should.eventually.equal("NO WAY");
});
嗯,讓我們嘗試一個更熟悉的測試:
輸出:
✓ should fail, waitUntilWindowLoaded, yes != no
txt = Hello World!
它成功了嗎?什麼?爲什麼?怎麼樣?
我不認爲webdriverio在這裏有問題。這看起來像我在異步摩卡測試中觀察到的行爲,當我忘記返回承諾時。 – Rhayene
@Rhayene - 正確的,我試圖通過編輯來澄清。 –