Ich implementiere ein CucumberJS-Szenario, das mehrere Schritte über zwei verschiedene Schrittdefinitionsdateien verwendet. Der erste Schritt setzt einige Variablen auf der Welt, die von einem Schritt in der anderen Schrittdefinitionsdatei verwendet werden müssen.Wie teile ich meine World-Instanz über mehrere Schrittdefinitionsdateien in CucumberJS?
Die Variable wird korrekt gesetzt, aber wenn der Schritt in der anderen Datei versucht, sie zu lesen, ist sie undefiniert. Irgendwelche Ideen, wie man das löst, abgesehen davon, dass die Schrittdefinitionsdateien zusammengeführt werden?
Beispiel:
world.js
var World = function World() {
this.client = '';
};
module.exports.World = World;
test.feature
Given a variable A
Then some other step
step1.steps.js
module.exports = function() {
this.World = require(process.cwd() + '/test/features/support/world').World;
this.Given(/^a Variable A$/, function() {
this.client = 'abc';
});
};
step2.steps.js
module.exports = function() {
this.World = require(process.cwd() + '/test/features/support/world').World;
this.Then(/^some other step$/, function() {
console.log(this.client);
});
};
: Darüber hinaus sollten Sie ein Objekt und nicht einen Konstruktor in
world.js
verwenden Das hat tatsächlich funktioniert, obwohl es sich von der offiziellen Dokumentation unterscheidet. Danke! – Dragnipur@Florent B. https://stackoverflow.com/questions/48297950/cumberjs-how-to-use-worldconstructor-across-different-features – Valay
@Florent B. wie man den gleichen Wert für 'Date.now()' erhält über verschiedene Funktionen? – Valay