Π₯ΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΡΠΎΠΉ e2e ΡΠ΅ΡΡ, ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π€ΠΎΡΠΌΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ, Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ submit (Π΄Π΅ΡΠ³Π°ΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡ).
ΠΠΎΠΆΠ½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π²ΠΏΠΈΡΠ°ΡΡ: " ", " name ", " nameπ€‘ "
ΠΠΌΠ΅ΡΡΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°ΡΡ: "0", "-1", "--1", "e", " {age} ", "notnumber"
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ: 1 + 3 + 6 = 10 Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΌΡ.
ΠΠΎΡΠΎΡΡΠ΅ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π²ΡΡΡΠ½ΡΡ(
ΠΠ»Ρ Π²ΡΠ΅Ρ ΡΠ΅ΡΡΠΎΠ² Ρ ΠΎΡΠ΅ΡΡΡ:
- Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΡΠ΅ΡΡ, ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ²);
- Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄, ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΡΠΌΡ Π·Π°ΠΏΡΠΎΡΠ° (body, query, url, headers ΠΈ Ρ.ΠΏ.);
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ:
- ΠΠ°ΠΌ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π»ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΡΠ΅ΡΠ΅Π· ΡΠΊΡΠΈΠ½ΡΠΎΡΡ ΠΈ ΡΠ»Π΅ΠΏΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ².
- ΠΠΈΡΠ΅ΠΌ ΡΠ΅ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Ρ ΠΈΠ· Π΄ΠΈΠ·Π°ΠΉΠ½ ΡΠΈΡΡΠ΅ΠΌΡ. Π’ΠΎ Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΊΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΅ΡΡΡ, ΠΈ ΠΈΠ· ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.

- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ
npm i --save-dev cypress-reflex
- Π ΡΠ°ΠΉΠ»
cypress/support/e2e.jsΠ΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ:
import "cypress-reflex/cypress-integration/commands";
- Π ΡΠ°ΠΉΠ»
cypress.config.jsΠ΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ:
const { getCypressReflexEnv } = require("cypress-reflex/cypress-integration/env");
const { registrateCypressReflexTasks } = require("cypress-reflex/cypress-integration/tasks");
// ...
module.exports = defineConfig({
e2e: {
setupNodeEvents(on, config) {
// ...
registrateCypressReflexTasks(on, config);
// ...
return {
...config,
...getCypressReflexEnv(config),
}
},
},
});
-
ΠΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ
-
ΠΠΎΠ±Π°Π²ΠΈΡΡ Π²
package.jsonΠΊΠΎΠΌΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΡΠΎΠ²
"generate-tests": "rm -rf cypress/e2e/generated && cypress-reflex --cases=cypress-reflex-cases --commands=cypress-reflex-cases/commands.js --output=cypress/e2e/generated"
- ΠΠΊΡΡΡΠΈΡΡ prettier Π² ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ Π² ΡΠ°ΠΌ ΠΊΠΎΠ΄
- ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ cypress-reflex => cypress-reflex-cli
- ΠΠ°ΠΊΠΈΠ΄Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
