在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Scala/ 簡介
Spec2 可選的 Matcher(匹配運(yùn)算)
測試結(jié)果 Results
Specs2 的設(shè)計(jì)思想
Fragments API 簡介
簡介
期望結(jié)果
Spec2 內(nèi)置的 Matcher(匹配運(yùn)算)

簡介

測試也是開發(fā)過程中非常重要一環(huán),本博客介紹 Scala 開發(fā)的主要目的是為了日后的 Play 應(yīng)用開發(fā)做基礎(chǔ),開發(fā)環(huán)境采用 IntelliJ IDEA 集成開發(fā)環(huán)境。因此使用 IntelliJ 創(chuàng)建 Play 應(yīng)用時(shí)缺省使用的測試包(基于 Spec2)

http://wiki.jikexueyuan.com/project/scala-spece2-test/images/1.jpg" alt="PIC" />

Play 應(yīng)用缺省在 test 目錄下創(chuàng)建了兩個(gè)測試類: 為 ApplicationSpec 和 IntegrationSpec ,我們暫時(shí)不去管它們。以后在介紹 Play 開發(fā)時(shí)再說。

本系列博客介紹 Spec2 測試(其它測試使用的模板還可以是 scalatest, JUnit,TestNG),其測試的為通用的類(和 Play 特定的測試無關(guān))。

Specs2 的測試規(guī)范分為兩大類型:

  • 單元測試規(guī)范: 這種測試規(guī)范和測試代碼混合在一起,它通常用來測試單個(gè)類。
  • 驗(yàn)收測試規(guī)范: 這種測試規(guī)范的為一個(gè)整體,與其測試代碼分開,它通常用于熟悉集成或驗(yàn)收測試規(guī)范。

Specs2 測試為一種行為驅(qū)動(dòng)測試方法,它的著重點(diǎn)在于使用可由人員的文字描述代碼期望的一些行為,配合測試代碼來驗(yàn)證所需要測試的代碼符合期望的規(guī)范。

下面我們使用例子來說明一下兩種風(fēng)格的測試規(guī)范:

單元測試

單元測試規(guī)范派生于 org.specs2.mutable.Specification ,使用 should/in 的格式。

import org.specs2.mutable._

class HelloWorldUnitSpec extends Specification {

  "HelloWorldUnit" should {
    "contain 11 characters" in {
      "Hello world" must have size(11)
    }
    "start with 'Hello'" in {
      "Hello world" must startWith("Hello")
    }
    "end with 'world'" in {
      "Hello world" must endWith("world")
    }
  }
}

驗(yàn)收測試規(guī)范

驗(yàn)收測試規(guī)范繼承自 org.specs2.Specification ,并且定義 is 方法。

import org.specs2._

class HelloWorldAcceptanceSpec extends Specification { def is = s2"""

 This is a specification to check the 'Hello world' string

 The 'Hello world' string should
   contain 11 characters                                         $e1
   start with 'Hello'                                            $e2
   end with 'world'                                              $e3
                                                                 """

  def e1 = "Hello world" must have size(11)
  def e2 = "Hello world" must startWith("Hello")
  def e3 = "Hello world" must endWith("world")
}

運(yùn)行測試

運(yùn)行測試的方法有很多種,在 Play 環(huán)境下,可以使用 play test 來運(yùn)行,在 IntelliJ IDEA 可以通過菜單

http://wiki.jikexueyuan.com/project/scala-spece2-test/images/2.jpg" alt="PIC" />

如果需要運(yùn)行或調(diào)試單個(gè)測試用例,可以在測試用例點(diǎn)擊右鍵,選擇

http://wiki.jikexueyuan.com/project/scala-spece2-test/images/3.jpg" alt="PIC" />