ScalaTest相当于JUnit的套件?

时间:2015-12-07 14:30:07

标签: scala testing scalatest

我是Scala的新手。来自Java,我习惯于在(JUnit)套件中对我的测试类进行分组/捆绑,这是一个分层的事情(套件内的套件)。

我在ScalaTest中寻找替代方案。

2 个答案:

答案 0 :(得分:2)

任何套件都可以包含嵌套套件。这些是从nestedSuites lifecyle方法返回的。您可以使用Suites类来执行此操作:

http://doc.scalatest.org/2.2.4/index.html#org.scalatest.Suites

如果要禁用嵌套套件的发现,可以使用@DoNotDiscover注释:

http://doc.scalatest.org/2.2.4/index.html#org.scalatest.DoNotDiscover

答案 1 :(得分:0)

FunSpecFreeSpec都可以根据需要进行嵌套。 http://www.scalatest.org/user_guide/selecting_a_style的示例:

import org.scalatest.FunSpec

class SetSpec extends FunSpec {

  describe("A Set") {
    describe("when empty") {
      it("should have size 0") {
        assert(Set.empty.size == 0)
      }

      it("should produce NoSuchElementException when head is invoked") {
        intercept[NoSuchElementException] {
          Set.empty.head
        }
      }
    }
  }

  // just add more describe calls
}

import org.scalatest.FreeSpec

class SetSpec extends FreeSpec {

  "A Set" - {
    "when empty" - {
      "should have size 0" in {
        assert(Set.empty.size == 0)
      }

      "should produce NoSuchElementException when head is invoked" in {
        intercept[NoSuchElementException] {
          Set.empty.head
        }
      }
    }

    // add more - calls
  }

  // add more - calls
}