Sì, è possibile impostare variabili di istanza durante qualsiasi tipo di passaggio.
Ad esempio, data la funzione:
Feature: Instance variables
Scenario: Set instance variables during all steps
Given a given step sets the instance variable to "1"
Then the instance variable should be "1"
When a when step sets the instance variable to "2"
Then the instance variable should be "2"
Then a then step sets the instance variable to "3"
Then the instance variable should be "3"
e le definizioni step:
Given /a given step sets the instance variable to "(.*)"/ do |value|
@your_variable = value
end
When /a when step sets the instance variable to "(.*)"/ do |value|
@your_variable = value
end
Then /a then step sets the instance variable to "(.*)"/ do |value|
@your_variable = value
end
Then /the instance variable should be "(.*)"/ do |value|
@your_variable.should == value
end
vedrete che lo scenario passa, il che significa che il momento e poi passi sono stati impostazione con successo la variabile di istanza.
Infatti, il Dato, Quando e Allora sono solo alias l'uno dell'altro. Solo perché hai definito una definizione di passaggio come "Data", può ancora essere chiamata "Quando" o "Allora". Ad esempio, lo scenario di cui sopra sarà ancora passare se le definizioni step utilizzati sono stati:
Then /a (\w+) step sets the instance variable to "(.*)"/ do |type, value|
@your_variable = value
end
Then /the instance variable should be "(.*)"/ do |value|
@your_variable.should == value
end
Si noti che il primo "Allora" definizione passo può essere utilizzato dal "Data" e "Quando" nello scenario.
Se è buona norma impostare le variabili di istanza in quando e quindi i passaggi, non è peggio che eseguirlo in determinati passaggi. Idealmente, nessuno dei tuoi passi userebbe variabili di istanza durante la creazione dell'accoppiamento di fasi. Ma, praticamente, non ho incontrato problemi significativi usando le variabili di istanza.
fonte
2013-12-12 20:14:23
La tua risposta mi ha aiutato molto. Tuttavia, ora sto pensando: c'è un modo per controllare l'ultimo valore calcolato da un passo? Voglio dire, invece di avere i passaggi "accoppiati" facendo riferimento a una variabile di istanza comune, potremmo semplicemente controllare il "last_value" del passaggio precedente? C'è un modo per farlo? –
@KeillRandor, non conosco un modo per farlo. Non è qualcosa che ho sentito di qualcuno, quindi probabilmente richiederebbe una modifica del framework. –
Ok, ho capito. Lo sto facendo impostando variabili di istanza, quindi grazie! –