Ich habe einen BDD-Beispieltest mit Winkelmesser mit Gurke. Beim Ausführen des Codes zeigt die Konsole sofort das Ergebnis als übergeben an und der Code beginnt erst danach mit der Ausführung.Winkelmesser-Gurke BDD-Tests Pass vor der Ausführung anzeigen
Ich wünsche, dass die Ausführungsstatusanzeige mit der tatsächlichen Ausführung übereinstimmt (zB Konsolenanzeigen - 'Gegeben, ich starte die Winkelmesserdemo Seite' und der darunter liegende Code wird ausgeführt, dann zeigt die Konsole den nächsten Schritt an) I weiß, dass es etwas mit Async-Codierung und Callbacks zu tun hat, aber nicht in der Lage ist, das genaue Problem herauszufinden.
Feature-Datei:
Feature: Test
Scenario: Test Scenario
Given I launch the protractor demo page
When I enter two in the first field
And I enter three in the second field
And I click Go button
Then Result should be displayed as Five
Schritt Datei:
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
module.exports = function() {
this.Given(/^I launch the protractor demo page$/, function (callback) {
browser.driver.manage().window().maximize();
browser.get('http://juliemr.github.io/protractor-demo/');
browser.getTitle().then(function(text){
console.log('title is - ' + text);
expect(text).to.equal('Super Calculator');
});
callback();
});
this.When(/^I enter two in the first field$/, function (callback) {
element(by.model('first')).sendKeys('2');
callback();
});
this.When(/^I enter three in the second field$/, function (callback) {
element(by.model('second')).sendKeys('3');
callback();
});
this.When(/^I click Go button$/, function (callback) {
element(by.id('gobutton')).click();
callback();
});
this.Then(/^Result should be displayed as Five$/, function (callback) {
element(by.repeater('result in memory')).all(by.tagName('td')).get(2).getText().then(function(text){
expect(text).to.equal('5');
});
callback();
});
};
Winkelmesser Version ist 3.3.0 – Manya