Инструменты тестирования поведения на уровне функций для Java / Scala - PullRequest
5 голосов
/ 09 июня 2010

Есть ли Java или Scala, эквивалентные Огурцы / SpecFlow ?Одна возможность - использовать Cucumber с JRuby;другие?

Ответы [ 6 ]

8 голосов
/ 09 июня 2010

Взгляните на ScalaTest с характеристиками . Пример спецификации функции с сайта ScalaTest:

import org.scalatest.FeatureSpec
import org.scalatest.GivenWhenThen
import scala.collection.mutable.Stack

class ExampleSpec extends FeatureSpec with GivenWhenThen {

  feature("The user can pop an element off the top of the stack") {

    info("As a programmer")
    info("I want to be able to pop items off the stack")
    info("So that I can get them in last-in-first-out order")

    scenario("pop is invoked on a non-empty stack") {

      given("a non-empty stack")
      val stack = new Stack[Int]
      stack.push(1)
      stack.push(2)
      val oldSize = stack.size

      when("when pop is invoked on the stack")
      val result = stack.pop()

      then("the most recently pushed element should be returned")
      assert(result === 2)

      and("the stack should have one less item than before")
      assert(stack.size === oldSize - 1)
    }

    scenario("pop is invoked on an empty stack") {

      given("an empty stack")
      val emptyStack = new Stack[String]

      when("when pop is invoked on the stack")
      then("NoSuchElementException should be thrown")
      intercept[NoSuchElementException] {
        emptyStack.pop()
      }

      and("the stack should still be empty")
      assert(emptyStack.isEmpty)
    }
  }
}
6 голосов
/ 09 июня 2010

specs предоставляет грамотным спецификациям " формы " для разработки Fit-подобных спецификаций. Вы можете найти пост, объясняющий обоснование этого здесь , и некоторые примеры из , что можно сделать с it .

Обратите внимание, что библиотека все еще находится в альфа-режиме, так как я планирую уделить ей больше внимания после того, как Scala 2.8.0 установится.

4 голосов
/ 25 ноября 2012

Теперь вы можете использовать Cucumber и определять свои шаги в Java или в чистом Scala.

Здесь у вас есть краткое и простое руководство по использованию в Scala с SBT: http://func.io/post/36452127031/pure-scala-bdd-made-easy-with-sbt-and-cucumber.

3 голосов
/ 09 июня 2010

JBehave отлично работает со Scala. Например, в этой статье http://jnb.ociweb.com/jnb/jnbJun2010.html есть ссылка на zip-файл, содержащий образец приложения с использованием JBehave, полностью реализованного в Scala.

Прямая ссылка на почтовый индекс: http://www.ociweb.com/jnb/jnbJun2010-scala-bowling.zip

1 голос
/ 14 июня 2010

JBehave был переписан после выпуска Cucumber, чтобы мы могли также использовать простой текст. Gherkin не было, когда мы его написали, поэтому он не анализирует точно то же самое - использует токены вместо регулярных выражений - но он будет выполнять ту же работу.

http://jbehave.org

1 голос
/ 09 июня 2010

Посмотрите на Фитнес , если вы хотите отделить тестовый код от текста приемки. Иначе, и Specs и ScalaTest поддерживают BDD-стиль (спецификации были написаны как BDD-стиль), а многие другие Java-фреймворки поддерживают его хорошо.

...