Voici un exemple easyb scénario à partir du site easyb:Est-il possible de séparer Groovy d'easyb des définitions de scénarios anglaises simples?
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()
}
}
Est-il possible de séparer le Groovy de l'anglais, de présenter quelque chose comme ceci:
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"
De cette façon, mon PHB a gagné » t obtenir tout confus par les accolades et Groovy.
pensé que cela pourrait descendre à cela. Au moins, vous pouvez réutiliser une bonne partie du code entre différents scénarios. Est-il plus «groovier» d'utiliser des fermetures plutôt que des méthodes ici? Et quel est le but de la description entièrement écrite si les noms descriptifs de fermeture/méthode sont plus lisibles ?! – Armand
Vous ne pouvez pas utiliser de méthodes ici car les instances de fermeture sont passées en arguments aux méthodes EasyB. Cela ne peut pas (vraiment) être fait avec des méthodes, et c'est la différence la plus importante entre les deux. - Quant aux descriptions textuelles, leurs instructions environnantes peuvent être exécutées sans corps de code. De plus, les non-programmeurs peuvent ne pas avoir le sentiment d'écrire des noms expressifs de fermeture/méthodes. – robbbert