Можно ли отделить Groovy от easyb от простых сценариев английского языка? - PullRequest
0 голосов
/ 19 ноября 2010

Вот пример сценария easyb с сайта 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()
 }
}

Можно ли отделить 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.

Ответы [ 3 ]

1 голос
/ 07 января 2011

На самом деле, я считаю, что это уже особенность easyb через интеграцию ANT.Ознакомьтесь с http://www.easyb.org/running.html, в разделе «Печать историй».

1 голос
/ 24 января 2011

В качестве расширения ответа SJG здесь приведен фрагмент кода, позволяющий сделать это программным путем.создать текстовое представление «История» из командной строки.Это простая задача, сделать это с помощью кода Groovy ...

import org.easyb.BehaviorRunner

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

Вы можете использовать аналогичный подход для отчетов HTML и отчетов XML, используя -html или -xml в качестве второго параметра.

Я до сих пор не уверен, какие параметры требуются для создания отчетов без запуска тестов.Это должно быть возможно, см. исправлена ​​ошибка 165 Было бы неплохо добавить это как последнюю часть истории, чтобы всегда создавалась пользовательская документация, а приведенный выше фрагмент кода приводит к выполнению тестов, поэтомуне может быть включен в тот же файл истории, иначе он попадет в рекурсивный цикл.

1 голос
/ 19 ноября 2010

Вероятно, не с оправданным усилием.Тем не менее, вы можете легко определить замыкания кода извне.«Человекочитаемые» части будут выглядеть следующим образом:

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
}

Убедитесь, что имена замыканий являются описательными и самодокументируемыми.На самом деле, я считаю, что их легче читать, чем полностью написанные описания ...

Определения замыканий были определены так:

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