Scala Specs2 測試入門教程
測試也是開發過程中非常重要一環,本部落格介紹Scala開發的主要目的是為了日後的Play應用開發做基礎,開發環境採用IntelliJ IDEA 整合開發環境。因此使用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 | "contain 11 characters" in { |
7 | "Hello world" must have size( 11 ) |
8 | } |
9 | "start with 'Hello'" in { |
10 | "Hello world" must startWith( "Hello" ) |