您的位置:首页 > 其它

Scala Specs2 测试入门教程

2014-05-19 16:39 330 查看
测试也是开发过程中非常重要一环,本博客介绍Scala开发的主要目的是为了日后的Play应用开发做基础,开发环境采用IntelliJIDEA集成开发环境。因此使用IntelliJ创建Play应用时缺省使用的测试包(基于Spec2)


Play应用缺省在test目录下创建了两个测试类:为ApplicationSpec和IntegrationSpec,我们暂时不去管它们。以后在介绍Play开发时再说。本系列博客介绍Spec2测试(其它测试使用的模板还可以是scalatest,JUnit,TestNG),其测试的为通用的类(和Play特定的测试无关)。
Specs2的测试规范分为两大类型:单元测试规范:这种测试规范和测试代码混合在一起,它通常用来测试单个类。
验收测试规范:这种测试规范的为一个整体,与其测试代码分开,它通常用于熟悉集成或验收测试规范。
Specs2测试为一种行为驱动测试方法,它的着重点在于使用可由人员的文字描述代码期望的一些行为,配合测试代码来验证所需要测试的代码符合期望的规范。下面我们使用例子来说明一下两种风格的测试规范:
单元测试单元测试规范派生于org.specs2.mutable.Specification,使用should/in的格式。
1
import
org.specs
2
.mutable.
_
2
3
class
HelloWorldUnitSpec
extends
Specification{
4
5
"HelloWorldUnit"
should{
6
"contain11characters"
in{
7
"Helloworld"
musthavesize(
11
)
8
}
9
"startwith'Hello'"
in{
10
"Helloworld"
muststartWith(
"Hello"
)
11
}
12
"endwith'world'"
in{
13
"Helloworld"
mustendWith(
"world"
)
14
}
15
}
16
}
验收测试规范验收测试规范继承自org.specs2.Specification,并且定义is方法。
1
import
org.specs
2
.
_
2
3
class
HelloWorldAcceptanceSpec
extends
Specification{
def
is
=
s
2
""
"
4
5
Thisisaspecificationtocheckthe'Helloworld'string
6
7
The'Helloworld'stringshould
8
contain11characters$e1
9
startwith'Hello'$e2
10
endwith'world'$e3
11
"
""
12
13
def
e
1
=
"Helloworld"
musthavesize(
11
)
14
def
e
2
=
"Helloworld"
muststartWith(
"Hello"
)
15
def
e
3
=
"Helloworld"
mustendWith(
"world"
)
16
}
运行测试
运行测试的方法有很多种,在Play环境下,可以使用playtest来运行,在IntelliJIDEA可以通过菜单


如果需要运行或调试单个测试用例,可以在测试用例点击右键,选择




ScalaSpecs2测试入门教程(1):简介
ScalaSpecs2测试入门教程(2):Specs2的设计思想
ScalaSpecs2测试入门教程(3):测试结果Results
ScalaSpecs2测试入门教程(4):期望结果
ScalaSpecs2测试入门教程(5):FragmentsAPI简介
ScalaSpecs2测试入门教程(6):Spec2内置的Matcher(匹配运算)
ScalaSpecs2测试入门教程(7):Spec2可选的Matcher(匹配运算)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: