spec2测试风格主要有两个
--Acceptance specification
--Unit specification
我们常用第二种风格,看看两种风格的范例
第一种
class MySpecification extends org.specs2.Specification { def is = s2"""
this is my specification
where example 1 must be true $e1
where example 2 must be true $e2
"""
def e1 = 1 must_== 1
def e2 = 2 must_== 2
}
这个风格有个缺点就是不能直接使用$e1来表达两个结果(会忽略前一个结果),不过可以这样
def e1 = ("hello" must have size (10000)) and
("hello" must startWith("hell"))
就是将两个结果进行与运算
第二种
class MySpecification extends org.specs2.mutable.Specification {
"This is my example" >> {
1 must_== 2 // this fails
1 must_== 1 // this is not executed
}
}
>> (in)
这种方法是直接利用异常抛出来做结果检查的,就是会对两个must 进行异常处理,让后进行结果报告