scala斷言專欄 標記你的測試

2021-08-04 17:48:19 字數 1739 閱讀 3054

scalatest允許您定義任意測試類別,將「標記」測試屬於這些類別,並根據其標籤過濾測試。例如,您可以將某些測試標記為緩慢,並選擇在某些執行期間排除慢速測試。scalatest預設支援乙個標籤:ignore。您可以將測試標記為被忽略以暫時關閉測試。

為了支援「臨時」禁用測試的常見用例,有意在稍後復活測試,每種風格特徵提供了將測試標記為忽略的方法。例如,在乙個flatspec你可以在更改itinignore

import org.scalatest.flatspec

import scala.collection.mutable.stack

class

stackspec

extends

flatspec

ignore should "throw nosuchelementexception if an empty stack is popped" in

}}

如果您stackspec在scala直譯器中執行此版本,請執行以下操作:

scala> (new stackspec).execute()

它將僅執行第乙個測試,並報告第二個測試被忽略:

a stack

- should pop values in last-in-first-out order

- should throw nosuchelementexception if an empty stack is popped !!! ignored !!!

每種風格特徵提供了一種標記測試的方式。flatspec例如,為了標記測試,例如,將傳遞抽象類的物件傳遞org.scalatest.tagtaggedas之前in。classtag需要乙個引數,乙個字串名稱。以下是如何定義標記來標記需要資料庫的測試:

import org.scalatest.tag

object

dbtest

extends

tag("com.mycompany.tags.dbtest")

給定這個定義,你可以標記這樣的flatspec測試:

import org.scalatest.flatspec

import org.scalatest.tagobjects.slow

class

examplespec

extends

flatspec

it must "subtract correctly" taggedas(slow, dbtest) in

}

此**標記了兩個測試與org.scalatest.tagobjects.slow標籤,並"the scala language should subtract correctly"com.mycompany.tags.dbtest標籤測試。

當執行套件時,可以根據其標籤可選地包括和/或排除(即,過濾)測試。就是這樣:

注意:

最好在命令列操作,不要在ide整合開發工具中編寫。

scala細節 你不知道的

在scala一般都是作為佔位符,比如下面過濾掉非整數的例子 somenumbers.filter x x 0 其等價於 somenumbers.filter 0 如下是做為引數的佔位符,需宣告型別 val f int int f 5,10 15多個下劃線指代多個引數,而不是單個引數的重複使用。第乙個...

TestNg中的斷言你真的了解嗎

在執行自動化測試指令碼的時候,我們需要自動判斷測試指令碼執行完成後的實際結果是否與預期結果一致,這個時候就需要在程式執行之前寫入斷言,判斷當前程式執行後是否正常。關於testng斷言分為兩種 在testng中,assert類為硬斷言,裡面有多個靜態方法被稱為硬斷言,特點就是,如果指令碼執行斷言失敗,...

SV斷言在測試激勵中的應用

本文 在我們平常的驗證過程中,有這樣的一種問題存在 乙個測試激勵根本沒有測試到我們期望的測試點,但是在 的過程中也沒有出現嚴重的錯誤,從頭到尾 正常的結束,那麼我們一般會認為它 通過了,在我們收集覆蓋率之前我們一般不會發現它其實根本什麼都沒有做,只是假裝 通過,今天我們介紹一種克服這種問題的辦法,利...