鍍金池/ 教程/ Scala/ 簡介
Spec2 可選的 Matcher(匹配運算)
測試結果 Results
Specs2 的設計思想
Fragments API 簡介
簡介
期望結果
Spec2 內置的 Matcher(匹配運算)

簡介

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

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

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

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

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

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

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

下面我們使用例子來說明一下兩種風格的測試規(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")
    }
  }
}

驗收測試規(guī)范

驗收測試規(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")
}

運行測試

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

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

如果需要運行或調試單個測試用例,可以在測試用例點擊右鍵,選擇

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

上一篇:測試結果 Results下一篇:期望結果