ΠΡΠΈΠ²Π΅Ρ,
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ? ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΠΈ Π² ΠΌΠΎΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ?
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΡΠ΅Π½Π°ΡΠΈΠΉ:
Feature: create module feature
As a admin
I want to use create module
<strong i="8">@createModule</strong>
Given I am logged as 'ADMIN'
And I am on "/admin/create"
Then The "book_id" field should be empty
Π― Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅Π³ @createModule Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’ΠΎΠ³Π΄Π°:
this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {
if (myModule === @createModule) {
...
} else if {
...
}
return main_po.checkIsEmptyElement(this, el);
});
Π― Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅Π³ @createModule , ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ.
Π’Π΅Π³ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Cucumber-js (ΡΠΌ. README). Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π³ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΊΠ°Π·Π°ΡΡ, Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΎΠ½ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΡΠ΅ ΡΠ°Π³ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΌΠΈΡΠ° (Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· this
Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ°Π³Π°).
Π Π΅ΡΠ΅Π½ΠΎ:
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» :
this.Before(function (scenario, callback) {
var tags = scenario.getTags();
this.current_module = tags[0].getName();
callback();
});
ΠΈ ΠΌΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ:
this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {
if (this.current_module === @createModule) {
...
} else if {
...
}
return main_po.checkIsEmptyElement(this, el);
});
@jechazelle ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΌΠ½Π΅ Π½ΡΠΆΠ½Π° ΡΠ° ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ :)
Π ΠΎΠ³ΡΡΡΠ΅-js 3.2.1 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
Before({timeout: 20000}, async function(testCase) {
this.tags = testCase.pickle.tags.map((tag) => tag.name);`
...
}
ΠΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π³Π° Π΄Π°Π΅Ρ ΡΠ±ΠΎΠΉ Π΄Π»Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΠΎΠ·Π΄Π°Π» Π·Π°ΠΏΠΈΡΡ ΠΎ Π½Π΅ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π΄Π΅ΡΠ΅ΠΊΡΠ΅ Π² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠΌΠ΅ΡΠΈΠ» Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π·Π°ΡΠ²ΠΊΠΈ, Π° Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π»ΠΎΠ³ΠΈΠΊΡ. Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π³Π° Π²Π΅ΡΠ½ΡΡΡ Β«ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅Β», Π΅ΡΠ»ΠΈ this.tags ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΎΠΌΠ΅Ρ Π·Π°ΡΠ²ΠΊΠΈ.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΠ΅ΠΉ ΡΠ±ΠΎΡΠΊΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ Π·Π΅Π»Π΅Π½ΠΎΠΌΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π²Π»Π°ΡΡΡ ΠΈΠΌΡΡΠΈΠ΅ ΡΠ΅ΡΠ°ΡΡ, Ρ ΠΎΡΡΡ ΠΎΠ½ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π΅ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ Π½Π΅Ρ.
ΠΡΠ° Π²Π΅ΡΠΊΠ° Π±ΡΠ»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ Π·Π°ΠΊΡΡΡΠΈΡ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π Π΅ΡΠ΅Π½ΠΎ:
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» :
ΠΈ ΠΌΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ: