Nous avons quelques tests de chai simples "est-ce vraiment fonctionne" d'une application électronique en utilisant spectron et WebdriverIO. Le code exemple nous avons commencé avec est dePourquoi ces tests chai échoueront-ils?
https://github.com/jwood803/ElectronSpectronDemo comme indiqué dans https://github.com/jwood803/ElectronSpectronDemo/issues/2, les tests promis chaï-en-ne rattrapent pas discordances, je pensais que je donc ajouter quelques tests supplémentaires pour savoir pourquoi Chai est pas de tests échoue lorsque les application électronique a un texte qui ne correspond pas au texte de test unitaire attendu.
Commençons par quelque chose de vraiment simple, le reste du code est à 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");
});
Le premier test unitaire échoue, le second réussit.
Et quand nous mettons l'affirmation en fonction, détecte encore l'échec:
it('should fail, but succeeds!?', function() {
function fn() {
var yes = 'yes';
yes.should.equal('no');
};
fn();
});
Alors maintenant, dans le monde de l'électron, webdriverio et Spectron, le titre de l'application est censé être « Bonjour tout le monde! », ce qui devrait échouer, mais il passe:
it('tests the page title', function() {
page.getApplicationTitle().should.eventually.equal("NO WAY");
});
Hmm, essayons un test plus familier:
Sortie:
✓ should fail, waitUntilWindowLoaded, yes != no
txt = Hello World!
Il réussit? Quelle? Pourquoi? Comment?
Je ne pense pas que webdriverio soit en faute ici. Cela ressemble au comportement que j'observe dans les tests de moka async, quand j'oublie de rendre la promesse. – Rhayene
@Rhayene - correct, j'ai essayé de clarifier via un edit. –