は一例ですeasybウェブサイトからeasybのシナリオ:easybのGroovyを英語のシナリオ定義と分けることは可能ですか?ここで
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()
}
}
は、それはより多くのこのような何かを提示するために、英語からのGroovyを分離することが可能である:
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"
私のPHBが「勝ったその方法中括弧とGroovyがすべて混乱します。
これになるかもしれないと思いました。少なくともこのようにして、さまざまなシナリオ間でコードを再利用することができます。ここでメソッドの代わりにクロージャを使用するのは面白いですか?記述的なクロージャー/メソッド名が読みやすくなっていれば、完全に書かれた説明の要点は何ですか? – Armand
ここでは、クロージャーインスタンスが引数としてEasyBメソッドに渡されるため、メソッドを使用することはできません。それは(実際に)方法で行うことはできません。それは両者の最も重要な違いです。 - テキスト記述に関しては、それらの周囲のステートメントはコードボディなしで実行することができます。さらに、非プログラマは、表現的なクロージャ/メソッド名を書く感覚がないかもしれません。詳細な回答をいただきありがとうございます。 – robbbert