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的格式。
验收测试规范验收测试规范继承自org.specs2.Specification,并且定义is方法。
运行测试
运行测试的方法有很多种,在Play环境下,可以使用playtest来运行,在IntelliJIDEA可以通过菜单
如果需要运行或调试单个测试用例,可以在测试用例点击右键,选择
ScalaSpecs2测试入门教程(1):简介
ScalaSpecs2测试入门教程(2):Specs2的设计思想
ScalaSpecs2测试入门教程(3):测试结果Results
ScalaSpecs2测试入门教程(4):期望结果
ScalaSpecs2测试入门教程(5):FragmentsAPI简介
ScalaSpecs2测试入门教程(6):Spec2内置的Matcher(匹配运算)
ScalaSpecs2测试入门教程(7):Spec2可选的Matcher(匹配运算)
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 | } |
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可以通过菜单
如果需要运行或调试单个测试用例,可以在测试用例点击右键,选择
相关文章推荐
- 自动化测试工具 Selenium WebDriver 入门教程
- Python入门教程--测试局域网中的电脑是否连通
- TestNG 自动化测试入门教程--典型示例
- JMeter压力测试入门教程[图文]
- JMeter压力测试入门教程[图文]
- Dojo QuickStart 快速入门教程 (4) 简单的测试框架
- 压力测试工具JMeter入门教程(及自定义Sample)
- JMeter压力测试入门教程[图文]
- JMeter压力测试入门教程[图文]
- 压力测试工具JMeter入门教程
- Unix/Linux环境C编程入门教程(25) C/C++字符测试那些事儿
- Android压力测试快速入门教程(图解)——Monkey工具
- APP压力测试入门教程
- TestNG 自动化测试入门教程--典型示例
- 压力测试工具JMeter入门教程
- flask入门的教程-调试、测试以用优化Debugging, Testing and Profiling
- Jmeter 快速入门教程(六) -- 用Jmeter测试你的EJB
- Android自动化压力测试快速入门教程(图解)——MonkeyRunner
- JMeter压力测试入门教程[图文]
- 压力测试工具JMeter入门教程(定制Sample)