Sto scrivendo un'app Web che viene utilizzata come SaS. Ogni cliente ha la propria directory db e app, quindi ho un'attività rake che crea tutti i dati minimi necessari (seed) per eseguire il loro sito web: diritti e ruoli predefiniti, un utente superadmin, una tabella "us_states" già popolata, alcuni depositi locali e terminali (è un'app logistica).Dati dei semi nei test di cetriolo
Non ho alcuno scenario di cetrioli e ho appena iniziato a costruirne alcuni. Sono alle prime armi con il cetriolo.
Prima ho messo quell'attività di seed data in una linea Given, ma questo è praticamente un dato per tutti gli scenari, e non ha molto senso per i non programmatori che guardano gli scenari (per gli umani, è un tale dato che non ha bisogno di essere espresso consapevolmente) così l'ho spostato in hooks.rb.
mio primo scenario si presenta così:
1 Feature: Place an order
2 In order to keep orders in the database
3 As a admin
4 I want to place orders
5
6 Scenario: Using common legs
7 Given I have 1 customers
8 And I'm on the homepage
9 And I follow "Place an Order"
10 When I select the customer
11 And I select the SSLine
12 And I click "Use Common Legs"
13 Then I should see "PICKUP AT"
14 And I should see "DELIVER TO" or "LOAD AT"
15 And I should see EMPTY RETURN
mio hooks.rb si presenta così:
1 Before do
2 MinimumData.new('costi', '1234').populate #username and password
3 end
Domande:
- non voglio correre questo MinimumData. compila attività prima di ogni scenario perché impiega 8 secondi. Dovrei farlo funzionare solo una volta, globalmente? Come?
- Devo pulire il database con un After.do? Io davvero non voglio farlo, perché duplicherò la logica in After.do, solo con le istruzioni Model.delete_all. Ho notato che dopo la mia prima esecuzione, il test db ha tutti i dati ancora dentro. Posso eliminarlo con rake db: test: spurgare e reinizializzarlo. È una buona pratica?
"prima di fare" dovrebbe essere writte "Prima di fare", a partire da un carattere maiuscolo – 0x4a6f4672