Behat / Mink: best practice per testare le stringhe nella GUI di un'applicazione Web

1

Sto scrivendo test di accettazione per un'applicazione web usando Behat / Mink.

Voglio conoscere le migliori pratiche per testare le stringhe nella GUI. Ad esempio: dire che voglio verificare che esista un collegamento sulla homepage alla schermata di accesso, cercando un collegamento con un testo, ad esempio "Accedi".

Voglio renderlo robusto; al momento, ad esempio, sto testando la presenza del link codificando il testo del link nello scenario:

Feature: Website Nagivation
  To use the website
  As a website visitor
  The nagivation needs to work

Scenario: Check that the login link exists on the homepage
  Given I am on "/"
  Then I should see a link labelled "Log In"

Ovviamente questo è molto fragile. Se il testo del collegamento viene modificato in "Accedi", il test si interrompe. (Tra gli altri problemi, ad esempio se il sito è internazionalizzato, il problema sarebbe moltiplicato).

Quali strategie posso usare per questo? Ad esempio:

  • Devo mantenere i dati DRY, quindi le stringhe utilizzate per popolare la GUI provengono dalla stessa posizione delle stringhe utilizzate per testare e fanno riferimento alla stringa con qualche identificatore univoco?
  • Come è stato possibile renderlo più user-friendly per gli scrittori / lettori dei test di accettazione Gherkin / Behat?
posta CL22 27.07.2015 - 20:17
fonte

1 risposta

1

Behat è al suo meglio quando viene utilizzato uno strumento per lo sviluppo comportamentale. Prova a pensare ai tuoi file di funzionalità come requisiti, non a test. Cambia prima i requisiti, poi modifica il tuo sistema per far passare i test!

Per rispondere in modo specifico alla tua domanda sulle lingue, se disponi di un sito multilingue, prova a inserire un passaggio extra come "Dato che sono un inglese" nella parte superiore del tuo scenario.

Modifica: Ricorda che le suite di Behat possono diventare ingombranti se sono troppo strettamente legate all'interfaccia utente per tutto il tempo. Prendi in considerazione la possibilità di eseguire più test "a livello di servizio" e meno test "UI" per i sistemi più grandi. Vedi: link

    
risposta data 27.07.2015 - 21:27
fonte

Leggi altre domande sui tag