Cucumber-js: μ—¬λŸ¬ μ˜ˆμ œκ°€ μžˆλŠ” μ‹œλ‚˜λ¦¬μ˜€ κ°œμš”

에 λ§Œλ“  2018λ…„ 06μ›” 06일  Β·  16μ½”λ©˜νŠΈ  Β·  좜처: cucumber/cucumber-js

μ•ˆλ…•,
μš°μ„ , 이 JS Gherkin κ΅¬ν˜„μ— 큰 감사λ₯Ό λ“œλ¦½λ‹ˆλ‹€.

λ‚΄ 문제:
λͺ‡ 가지 μ˜ˆκ°€ μžˆλŠ” μ‹œλ‚˜λ¦¬μ˜€ κ°œμš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 μ‹œλ‚˜λ¦¬μ˜€μ—λŠ” 일뢀 URL둜 끝점을 κ°€μ Έμ˜€λŠ” 단계가 ν¬ν•¨λ˜μ–΄ 있으며 이 μ‹œλ‚˜λ¦¬μ˜€ κ°œμš”μ— url λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” λ‹€λ₯Έ μ˜ˆμ œκ°€ 있기λ₯Ό μ›ν•©λ‹ˆλ‹€.
그런 λ‹€μŒ 첫 번째 μ˜ˆμ œμ— λ‹€λ₯Έ 예제λ₯Ό κ³±ν•œ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ‹€ν–‰ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 첫 번째 μ˜ˆμ œμ— 예λ₯Ό λ“€μ–΄ 4개의 행이 있고 두 번째 4개의 행이 μžˆλŠ” 경우 = 4 x 4 = 16이 μ‹€ν–‰λ©λ‹ˆλ‹€.

기본적으둜 동일
https://github.com/Behat/Behat/issues/1082

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

https://github.com/Behat/Behat/issues/1082 λŠ” λ§ˆμ§€λ§‰ 예제 ν…Œμ΄λΈ”λ§Œ μ‹€ν–‰λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 예제 ν…Œμ΄λΈ”μ„ κ³±ν•˜λŠ” κ²ƒκ³ΌλŠ” λ³„κ°œλΌκ³  μƒκ°ν•©λ‹ˆλ‹€.

예제λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€. λ‹€μŒμ„ μš”κ΅¬ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

a1/b1, a1/b2, a1/b3, a1/b4, a2/b1 λ“±μ˜ μ‘°ν•©μœΌλ‘œ 16개의 μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ‹€ν–‰ν•˜λŠ” κ³³ 이 섀정은 ν˜„μž¬ 처음 4bμ—μ„œ μ •μ˜λ˜μ§€ μ•Šκ³  두 번째 4aμ—μ„œ μ •μ˜λ˜μ§€ μ•Šμ€ 8개의 μ‹œλ‚˜λ¦¬μ˜€κ°€ λ©λ‹ˆλ‹€.

λͺ¨λ“  16 λŒ“κΈ€

λ‚˜λŠ” 이것이 이미 μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것에 λ†€λžλ‹€. 그것은 ν™•μ‹€νžˆ μžλ°”μ™€ λ£¨λΉ„μ—μ„œ μ•ŠμŠ΅λ‹ˆλ‹€....

μ‹œν–‰λ˜μ–΄μ•Ό ν•œλ‹€λŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€.

https://github.com/Behat/Behat/issues/1082 λŠ” λ§ˆμ§€λ§‰ 예제 ν…Œμ΄λΈ”λ§Œ μ‹€ν–‰λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 예제 ν…Œμ΄λΈ”μ„ κ³±ν•˜λŠ” κ²ƒκ³ΌλŠ” λ³„κ°œλΌκ³  μƒκ°ν•©λ‹ˆλ‹€.

예제λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€. λ‹€μŒμ„ μš”κ΅¬ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

a1/b1, a1/b2, a1/b3, a1/b4, a2/b1 λ“±μ˜ μ‘°ν•©μœΌλ‘œ 16개의 μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ‹€ν–‰ν•˜λŠ” κ³³ 이 섀정은 ν˜„μž¬ 처음 4bμ—μ„œ μ •μ˜λ˜μ§€ μ•Šκ³  두 번째 4aμ—μ„œ μ •μ˜λ˜μ§€ μ•Šμ€ 8개의 μ‹œλ‚˜λ¦¬μ˜€κ°€ λ©λ‹ˆλ‹€.

@aslakhellesoy λŠ” μžλ°”/λ£¨λΉ„μ—μ„œ μž‘λ™ν•˜λŠ” 예제 ν…Œμ΄λΈ”μ„ κ³±ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? Cuccmber-jsλŠ” 단일 μ‹œλ‚˜λ¦¬μ˜€ κ°œμš”μ— λŒ€ν•œ μ—¬λŸ¬ 예제 ν…Œμ΄λΈ”μ„ μ˜¬λ°”λ₯΄κ²Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

λ‚΄κ°€ Behat ν‹°μΌ“μ—μ„œ κ°€μ Έμ˜¨ κ²ƒμ—μ„œ 그듀이 λ‹¬μ„±ν•˜κ³ μž ν•˜λŠ” 것은 ν‘œλ₯Ό λŠ˜λ¦¬λŠ” 것이 μ•„λ‹ˆλΌ 그듀이 ν‘œν˜„ν•˜λŠ” 것을 기반으둜 예제λ₯Ό κ·Έλ£Ήν™”ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

    Examples: of ordinary Latin character inputs
      | input |
      | a     |
      | z     |
      | 0     |

    Examples: of Unicode inputs
      | input  |
      | U+0046 |
      | U+0058 |

    Examples: of invalid inputs
      | input  |
      | <      |
      | </     |

ν•©μ„±λ³΄λ‹€λŠ”:

    Examples: Usernames
         | username   |
         | admin      |
         | user       |
         | maintainer |
         | moderator  |

    Examples: Passwords
         | password |
         | valid    |
         | invalid  |

λ‚΄κ°€ 틀릴 μˆ˜λ„ μžˆμ§€λ§Œ

μž‘λ™ν•˜λŠ” "μ—¬λŸ¬"예제 ν…Œμ΄λΈ”μ„ 잘λͺ» μ½μ—ˆμŠ΅λ‹ˆλ‹€. (ν–‰λ ¬ κ³±μ…ˆμ„?) 예λ₯Ό λ“€μ–΄ ν…Œμ΄λΈ”μ„ κ³±ν•˜λ©΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ‚¬λžŒλ“€μ΄ μ΄ν•΄ν•˜κΈ°μ—λŠ” 쑰금 μ–΄λ €μšΈ 것 κ°™μ•„μš”.

더 μž‘μ€ ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜κΈ° μœ„ν•΄ pairwise λ₯Ό κ³ λ €ν–ˆμŠ΅λ‹ˆκΉŒ?

Behat 티켓을 κ²Œμ‹œν•˜μ—¬ ν˜Όλ™μ„ λ“œλ € μ£„μ†‘ν•©λ‹ˆλ‹€. ν‚€μ›Œλ“œκ°€ λ‹€λ₯΄λ”라도 μ •ν™•νžˆ charlierudolphκ°€ μ“°λŠ” 것이 ν•„μš”ν•©λ‹ˆλ‹€.

κ³ λ§ˆμ›Œ.

@znevrly ν˜„μž¬ μ˜ˆμ œμ— λŒ€ν•΄ λͺ¨λ“  것을 κ³±ν•˜λ©΄ ν˜Όλž€μŠ€λŸ¬μšΈ 수 μžˆλ‹€λŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€. λ‚˜λŠ” pairwiseκ°€ λŒ€ν‘œμ μΈ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μ„ΈνŠΈλ‘œ 쒁힐 수 있기 λ•Œλ¬Έμ— 이상적인 μ†”λ£¨μ…˜μ΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€. @aslakhellesoy 쌍으둜 μž‘μ€ μ˜€μ΄μ™€ 같은 것을 λ§Œλ“€κ³  μ‹ΆμŠ΅λ‹ˆκΉŒ? (λ§Œμ•½ μš°λ¦¬κ°€ 쒋은 μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ²°μ •ν•  수 μžˆλ‹€λ©΄)

λ‚˜λŠ” μš°λ¦¬κ°€ Gherkin에 쌍으둜 ꡬ좕해야 ν•œλ‹€κ³  μƒκ°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ…λ¦½ν˜• 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ ν…Œμ΄λΈ”μ„ μƒμ„±ν•œ λ‹€μŒ κΈ°λŠ₯ νŒŒμΌμ— λΆ™μ—¬λ„£λŠ” 것이 더 λ‚«λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

λ³„λ‘œ νŽΈμ•ˆν•˜κ²Œ 듀리지 μ•ŠμŠ΅λ‹ˆλ‹€. μ–΄λ–€ 아이디어? :)

무엇에 λŒ€ν•œ 아이디어가 μžˆμŠ΅λ‹ˆκΉŒ?

ν…Œμ΄λΈ”μ„ μˆ˜λ™μœΌλ‘œ 생성할 ν•„μš” 없이 μ„€λͺ…λœ λ™μž‘(예제 ν…Œμ΄λΈ” λ˜λŠ” ν–‰λ ¬ κ³±μ…ˆμ„ 곱함)을 λ‹¬μ„±ν•˜κΈ° μœ„ν•œ λͺ‡ 가지 ν‚€μ›Œλ“œλ₯Ό κ°–μŠ΅λ‹ˆλ‹€.

μ‹œλ‚˜λ¦¬μ˜€ κ°œμš”μ— 뢙여넣을 ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜κΈ° μœ„ν•΄ pairwise 도ꡬλ₯Ό ν•œ 번만 μ‹€ν–‰ν•˜λ©΄ λœλ‹€λŠ” 사싀을 μ•Œκ³  κ³„μ…¨μŠ΅λ‹ˆκΉŒ? 무엇이 당신을 λΆˆνŽΈν•˜κ²Œ ν•˜λŠ”μ§€ 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ λ§Žμ€ μ‹œλ‚˜λ¦¬μ˜€κ°€ ν¬ν•¨λœ μˆ˜μ‹­ 개의 κΈ°λŠ₯ 파일이 μžˆμŠ΅λ‹ˆλ‹€. "두 번째"의 경우 예제 ν…Œμ΄λΈ”μ€ λ§Žμ€ 볡사 λΆ™μ—¬λ„£κΈ°κ°€ 될 것이며 μ™„λ£Œ μ—¬λΆ€λŠ” 맀우 λͺ…ν™•ν•©λ‹ˆλ‹€. 그리고 "두 번째" 예제 ν…Œμ΄λΈ”μ— μΆ”κ°€ 행이 μžˆλŠ” 경우 λ³‘ν•©λœ λͺ¨λ“  ν…Œμ΄λΈ”μ„ λ‹€μ‹œ 생성할 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

μƒμ„±λœ ν…Œμ΄λΈ”μ— λŒ€ν•΄ κ°€λŠ₯ν•œ λͺ¨λ“  쑰합이 μžˆλŠ”μ§€ μ—¬λΆ€λŠ” λͺ…ν™•ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. :(

μ–Έμ  κ°€λŠ” Gherkin μ „μ²˜λ¦¬κΈ° APIλ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλ ‡κ²Œ ν•  λ•Œ κ·€ν•˜κ°€ μš”μ²­ν•œ κΈ°λŠ₯은 ν•΄λ‹Ή APIλ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„λ˜μ–΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. ν˜„μž¬λ‘œμ„œλŠ” μš°μ„  μˆœμœ„κ°€ μ•„λ‹ˆλ―€λ‘œ κΈ΄κΈ‰ν•œ 경우 Gherkin νŒŒμΌμ„ 직접 μƒμ„±ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

μ˜ˆμ—μ„œ 이것을 μ–΄λ–»κ²Œ μ‚¬μš©ν•©λ‹ˆκΉŒ? 이메일은 "first_name. [email protected] " ν˜•μ‹μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.

예제 ν…Œμ΄λΈ”μ—μ„œ ν•˜λ‚˜μ˜ μ‹œλ‚˜λ¦¬μ˜€λ§Œ 선택할 수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚΄κ°€ 가지고 μžˆλ‹€κ³  λ§ν•˜μž

에이| λ‚˜ | γ„·|
| λ²ˆλ“€ | 'HD' | 'SHP' |
| PZ | 'HD' | 'SHP' |

ν•œ κΈ°λŠ₯ 파일(helloWorld.feature라고 함)μ—μ„œ μœ„μ˜ ν‘œμ™€ ν•¨κ»˜ μ‹œλ‚˜λ¦¬μ˜€ κ°œμš”κ°€ μžˆλŠ” λ‹€λ₯Έ κΈ°λŠ₯(Print.feature) νŒŒμΌμ„ ν˜ΈμΆœν•˜λŠ” 경우 첫 번째 κΈ°λŠ₯ νŒŒμΌμ—μ„œ μ‹€ν–‰ν•  μ‹œλ‚˜λ¦¬μ˜€λ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆκΉŒ?

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰