Domanda

Ecco un esempio scenario EasyB dal sito EasyB:

before "start selenium", {
 given "selenium is up and running", {
  selenium = new DefaultSelenium("localhost",
    4444, "*firefox", "http://acme.racing.net/greport")
  selenium.start()
 }
}

scenario "a valid person has been entered", {

 when "filling out the person form with a first and last name", {
  selenium.open("http://acme.racing.net/greport/personracereport.html")
  selenium.type("fname", "Britney")
  selenium.type("lname", "Smith")
 }

 and "the submit link has been clicked", {
  selenium.click("submit")
 }

 then "the report should have a list of races for that person", {
  selenium.waitForPageToLoad("5000")
  values = ["Mclean 1/2 Marathon", "Reston 5K", "Herndon 10K", "Leesburg 10K"]
  for(i in 0..<values.size()){
    selenium.getText("//table//tr[${(i+3)}]/td").shouldBeEqualTo values[i]
  }
 }
}

after "stop selenium" , {
 then "selenium should be shutdown", {
  selenium.stop()
 }
}

E 'possibile separare il Groovy dagli inglesi, di presentare qualcosa di più simile a questo:

scenario "a valid person has been entered"
  given "the website is running"
  when "filling out the person form with a first and last name"
  and "the submit link has been clicked"
  then "the report should have a list of races for that person"

In questo modo il mio PHB non otterrà tutti confusi dalle bretelle e Groovy.

È stato utile?

Soluzione

Probabilmente non con uno sforzo giustificabile. Tuttavia, si può facilmente definire le chiusure di codice esterno. Le parti "leggibile" sarebbe quindi simile a questa:

scenario "a valid person has been entered", {
    when "filling out the person form with a first and last name", 
        fillOutPersonForm
    and "the submit link has been clicked", 
        clickSubmitLink
    then "the report should have a list of races for that person", 
        checkRacesList
}

Assicurarsi che i nomi di chiusura sono descrittivi e di auto-documentazione. A dire il vero, li trovo più facile da leggere rispetto alle descrizioni completamente scritte ...

Le definizioni di chiusura sono stati definiti così:

def fillOutPersonForm = {
    selenium.open("http://acme.racing.net/greport/personracereport.html")
    selenium.type("fname", "Britney")
    selenium.type("lname", "Smith")
}

Altri suggerimenti

In realtà, credo che questa sia già una caratteristica della EasyB tramite l'integrazione ANT. Scopri http://www.easyb.org/running.html , sotto la sezione "Story Stampa".

Come estensione di SJG è rispondere : ecco un frammento di codice per fare questo livello di programmazione.

Il EasyB documentazione a http://www.easyb.org/running.html descrive solo come creare la 'storia' vista testo dalla riga di comando. Si tratta di un compito semplice per fare questo con codice Groovy ...

import org.easyb.BehaviorRunner

def params=["C:/temp/teststory.story", "-txtstory", "C:/temp/testoutput.html"] as String[]
BehaviorRunner.main(params)

È possibile utilizzare un approccio simile per la segnalazione HTML e XML funzionale utilizzando -html o -xml come il 2 ° parametro.

Non sono ancora sicuro di quali parametri sono necessari in modo che solo i report vengono creati senza eseguire le prove. Questo dovrebbe essere possibile, vedi numero 165 fisso sarebbe bello aggiungere questo come l'ultima parte di una storia in modo che la documentazione 'user' viene sempre creato, frammento di sopra cause le prove da eseguito in modo da non possono essere inclusi nello stesso file storia altrimenti sarebbe entrare in un ciclo ricorsivo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top