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

測(cè)試結(jié)果 Results

在第一篇文章我們說(shuō)過(guò) Specs 可以有兩種風(fēng)格的測(cè)試規(guī)范:?jiǎn)卧獪y(cè)試規(guī)范和驗(yàn)收測(cè)試規(guī)范,我們來(lái)看其中的一個(gè)例子:

def is =                     s2"""

  this is my specification
    and example 1            $e1
    and example 2            $e2
                             """

def e1 = success
def e2 = success

這段代碼從 S2 字符串創(chuàng)建一組 Fragments(測(cè)試用例)對(duì)象,這個(gè)例子創(chuàng)建了一個(gè) Text 對(duì)象和兩個(gè) Example 對(duì)象(它們都是 Fragment 的子類(lèi))。

在 Specs2 的 Example 對(duì)象為一個(gè)文字加上任意可以轉(zhuǎn)換成 Result 對(duì)象(org.specs2.execute.Result)的對(duì)象,它可以是:

  • 一個(gè)標(biāo)準(zhǔn)測(cè)試結(jié)果(Success,failure,pending 等)
  • 一個(gè)Matcher(匹配)結(jié)果
  • 一個(gè)布爾值
  • 一個(gè) ScalaCheck 屬性

標(biāo)準(zhǔn)測(cè)試結(jié)果

最簡(jiǎn)單的 Result 值由 StandardResults Trait 定義,可以有如下幾種值:

  • success: 這個(gè)測(cè)試結(jié)果正常
  • failure: 這個(gè)測(cè)試結(jié)果不滿足預(yù)期
  • anError: 測(cè)試出現(xiàn)異常
  • skipped: 該測(cè)試被跳過(guò)(不滿足某些條件)
  • pending: 通常只這個(gè)測(cè)試用例還沒(méi)實(shí)現(xiàn)

此外還有兩種情況:

  • done: 這個(gè)測(cè)試結(jié)果正常并顯示 “DONE”
  • todo: 測(cè)試用例還沒(méi)實(shí)現(xiàn)顯示“TODO”

匹配

通常 Example 定義體使用 Matcher 定義期望值:

def e1 = 1 must_== 1

Matcher 我們?cè)诤竺胬^續(xù)詳細(xì)介紹。

下一篇:簡(jiǎn)介