Play 2.0 中文资料 - 编写测试
Unmi 注: 当你采用 TDD 进行开发过一段时间后,很快你就会对 TDD 产生依恋了。没直正去实践过 TDD,对于测试先行的提法只会觉得是一种理想状态。其实不然,从此开发模式变成 测试->实现->重构,同时也指导你的设计,基础架构并不需要那么稳定,它总在应需而变。所以 TDD 让你不该总在项目中后期抱怨架构设计不好之类的事,因为主动权一直在你。废话一堆后就是:测试真的很重要,尽快进入角色吧。
测试你的应用程序
测试源代码文件必须放置在你的应用的
test 目录下. 你可以在 Play 控制台下用 test 和 test-only 任务来运行它们.使用 specs2
测试一个 Play 2 应用默认的方式是采用 specs2.
单元规格须继承自
org.specs2.mutable.Specification 特质并应用 should/in 的格式: 1import org.specs2.mutable._
2
3import play.api.test._
4import play.api.test.Helpers._
5
6class HelloWorldSpec extends Specification {
7
8 "The 'Hello world' string" should {
9 "contain 11 characters" in {
10 "Hello world" must have size(11)
11 }
12 "start with 'Hello'" in {
13 "Hello world" must startWith("Hello")
14 }
15 "end with 'world'" in {
16 "Hello world" must endWith("world")
17 }
18 }
19}假如你的测试代码需求依赖一个运行中的应用, 你可以轻易的立马创建一个
FakeApplication: 1"Computer model" should {
2
3 "be retrieved by id" in {
4 running(FakeApplication()) {
5
6 val Some(macintosh) = Computer.findById(21)
7
8 macintosh.name must equalTo("Macintosh")
9 macintosh.introduced must beSome.which(dateIs(_, "1984-01-24"))
10
11 }
12 }
13}FakeApplication 并默认使用内存数据库:1FakeApplication(additionalConfiguration = inMemoryDatabase())[版权声明]
本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。