我习惯了JUnit,在JUnit中,只需在单个文件(类)中定义多个测试并使用@Test
注释它们,就可以对这些测试(通常与一个类相关)进行分组。然后,为了运行几个这样的测试,需要使用@Suite.SuiteClasses
创建一个TestSuite
,依此类推。
在specs2中,可以在两个不同的级别上对几个测试进行分组,扩展一些Specification
。例如:
"Whatever" should {
"do its job when possible" in {
whatever(new Thing).work must beSome
}
"return none when not possible" in {
whatever(null).work must beNone
}
}
我们可以将几个这种类型的Specification
分组到一个文件中,每个检查可以打包几个@Test
,每个检查就像一个JUnit中的文件,然后每个Specification
在JUnit中作为一个Suite
,除了Suite
被分成几个类和Specification
在一个类(即文件)中,这往往会产生巨大的文件。
所以问题有两层:
Specification
和每个类应该做的事情,即它应该通过的检查。Suite
,以便在可能的情况下以分层的方式对它们进行分组,例如,作为ScalaTest的Suites
。顺便说一下:我使用Specs2是因为我认为它是标准的(在默认情况下使用原型,一个(非常精简的)小样本(和轶事)证实了这一点[1,2]),但我正在考虑使用ScalaTest。从数字(specs2,scalatest)来判断,这可能是遵循Scala社区的标准和习惯的最佳选择。我之所以提到这一点,是因为这样的回答是可以接受的,比如“不可能,使用ScalaTest”。
https://stackoverflow.com/questions/29147861
复制相似问题