Wir haben einige einfache "ist das wirklich funktioniert" Chai Tests einer Elektronen-App mit Spektron und WebdriverIO. Der Beispielcode begannen wir mit ausWarum werden diese Chai-Tests nicht fehlschlagen?
https://github.com/jwood803/ElectronSpectronDemo wie in https://github.com/jwood803/ElectronSpectronDemo/issues/2 berichtet, die chai-as-versprochenen Tests sind nicht Mismatches zu kontrollieren, so dachte ich, ich würde ein paar zusätzliche Tests hinzufügen, um herauszufinden, warum Chai keine Tests versagt, wo die electron app hat einen Text, der nicht mit dem erwarteten Komponententest übereinstimmt.
Beginnen wir mit etwas beginnen, wirklich einfach, den Rest des Codes ist bei 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");
});
Die erste Einheit Test fehlschlägt, gelingt es der zweite.
Und wenn wir die Behauptung in eine Funktion setzen dies erkennt noch das Scheitern:
it('should fail, but succeeds!?', function() {
function fn() {
var yes = 'yes';
yes.should.equal('no');
};
fn();
});
So, jetzt in die Welt der Elektronen, webdriverio und spectron wird der Anwendungstitel sein „Hallo Welt soll! “, so sollte dies nicht gelingen, aber es geht:
it('tests the page title', function() {
page.getApplicationTitle().should.eventually.equal("NO WAY");
});
Hmm, lassen sie sich versucht, einen vertrauten Test:
Output:
✓ should fail, waitUntilWindowLoaded, yes != no
txt = Hello World!
Es gelingt? Was? Warum? Wie?
Ich denke nicht, dass webdriverio hier die Schuld ist. Das sieht nach dem Verhalten aus, das ich bei asynchronen Mocha-Tests beobachte, wenn ich vergesse, das Versprechen zurückzugeben. – Rhayene
@Rhayene - richtig, ich habe versucht, über eine Bearbeitung zu klären. –