Napisałem modalny pokaz slajdów dla naszej aplikacji internetowej, która przedstawia nawigację dla zestawów dokumentów i udostępnia różne metadane dla tych dokumentów.Ograniczaj krok lub krok ogórka do określonej funkcji lub tagu.
Jest to duży składnik aplikacji o wymaganiach ezoterycznych, więc uważam, że jest wystarczająco sprawiedliwy, aby jego podstawowe scenariusze (dane mi jako kryteria akceptacji) były zarówno liczne, jak i wewnętrznie spójne.
Aby uniknąć nowy krok dla każdego z naszych wielu scenariuszy, jakie dostosowany a helper co przekłada ludzku-czytelne takich jak document caption
do selektorów:
module SelectorsHelper
def selector_for(term)
case term
# Lightbox/modal/fancybox
when 'lightbox'
'#fancybox-inner'
when 'close button'
'.document-viewer__tools__close'
... obok kilku definicji kroku generycznych, takich jak następujące:
# Generic click action
When(/^I click (?:on)?(?:the |a)'(.*?)'?$/) do |element|
find(selector_for(element)).click
end
problem, czy jestem działając na bardzo ogólnych pojęć jak z powyższych lub bardziej konkretnych abstrakcji obejmujących wzory powtarzające się w zestaw funkcji, jest to, że mogą one siać spustoszenie w z innymi ezoterycznymi funkcjami, które mogą mieć znacznie bardziej szczegółowe kroki, aby je przeanalizować. Każdy przykład Cucumbera, który widziałem, zawiera pliki definicji kroków, których nazwa pliku zawiera związek proceduralny z konkretnym plikiem funkcji, a moim założeniem było, że w tych przypadkach ten plik definicji kroku byłby wywoływany tylko w celu analizowania scenariuszy powiązanych funkcji:
+ features
| + step_definitions
| | + global_steps.rb
| | + modal_steps.rb
| | + login_steps.rb
| + modal.feature
| + login.feature
Ale to nie jest przypadek - a ja usiłuje pogodzić się z poglądem, że ogórek próby zastosowania co krok wzory definicję każdy scenariusza. Jeśli testy te będą miały jakąkolwiek wartość, będą się powiększać, wprowadzać nowe koncepcje i pozostaną aktualne bez ciągłego przepisywania. Chcę móc ograniczyć zakres moich działań, aby uniemożliwić im ingerencję w funkcje, dla których nie napisano, ale nie wiem jak. Następujące rozwiązania koncepcyjne przychodzą na myśl:
- tle wykorzystania lub scenariusza
@tags
i wywołać kroki tylko dla scenariuszy z tych tagów definicje krok
- gniazdo w jakimś owijania pomocnika lub meta-krok-definition, która jest wywoływana przez fallacious tło podane
jestem zaznajomiony z Ruby i Ogórek wydaje się bardzo cienkie, więc jestem obawiają się nieograniczonym potencjałem, z jednej strony i nie ma ustalonej realizacji z drugiej. Jakieś pomysły?
Myślę, że moje pytanie szukało zbyt specyficznego rozwiązania niewiarygodnie ogólnej sytuacji. Jest to równie dobre pytanie, na które mogłem liczyć. Twoja rada - _nie to, jak zamierza się używać ogórek- ma wiele sensu. Gdybym wrócił do używania ogórka, przestrzegałbym tej rady! – Barney