Инструменты тестирования поведения уровня функции для Java/Scala

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

5
задан Alexey Romanov 8 June 2010 в 20:00
поделиться

5 ответов

Посмотрите на ScalaTest with Feature Spec. Образец спецификации функций с сайта 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)
    }
  }
}
8
ответ дан 18 December 2019 в 06:49
поделиться

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

Прямая ссылка на zip: http://www.ociweb.com/jnb/jnbJun2010-scala-bowling.zip

3
ответ дан 18 December 2019 в 06:49
поделиться

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

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

6
ответ дан 18 December 2019 в 06:49
поделиться

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

1
ответ дан 18 December 2019 в 06:49
поделиться

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

http://jbehave.org

1
ответ дан 18 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: