La modifica di uno scenario Specflow dopo la sua scrittura viola il principio di chiusura aperta?

0

Sto cercando di imparare Specflow. Ho comprato un libro e arriva nel fine settimana. La maggior parte degli scenari che vedo online sono per cose semplici come i calcolatori. Ad esempio, vedi lo scenario seguente:

Feature: Calculator
       In order to avoid silly mistakes
       As a math idiot
       I want to be told the sum of two numbers

@mytag
Scenario: Add two numbers
       Given I have entered 50 into the calculator
       And I have also entered 70 into the calculator
       When I press add
       Then the result should be 120 on the screen

che ho preso da qui: link

Questa funzione non dovrebbe mai cambiare; perché il processo di aggiunta di due numeri non cambierà mai, cioè 70 + 50 sarà sempre uguale a 120. La maggior parte degli altri scenari che vedo, ad es. l'accesso a una pagina Web non dovrebbe mai cambiare.

Dire che ho uno scenario come questo:

Feature: EligibilityCalculator
       In order to calculate offers
       As an eligibility calculator
       I want to be told a date of birth and gender

Questa funzione mi sembra a posto. Tuttavia, cosa accadrebbe se i criteri di idoneità cambiassero in futuro? Ad esempio, cosa succede se volevo modificare i criteri per dire:

1) I want to be told a date of birth, gender and country
or
2) The Step Definitions change to only allow people over the age of 21

Devo solo modificare il file delle caratteristiche e le definizioni dei passaggi o si tratta di uno scarso test di accettazione?

    
posta w0051977 08.03.2018 - 12:54
fonte

1 risposta

2

Devi solo modificare il file delle caratteristiche e le definizioni dei passaggi.

Il principio di open-closed significa che dovresti evitare di dover modificare il codice di funzione esistente per implementare nuove funzionalità.

Se i requisiti per una funzionalità esistente cambiano, è logico che il codice che implementa tale funzionalità (o i test per essa) debba essere modificato. Altrimenti si finisce con un numero molto elevato di test obsoleti e inutili e codice morto.

    
risposta data 08.03.2018 - 13:20
fonte

Leggi altre domande sui tag