11 2 2 2 測試列表

2021-06-28 03:15:23 字數 1263 閱讀 6018

11.2.2.2 測試列表

> let partitionmultiword(names:list)=

names|> list.partition (fun name -> name.contains(" "));;

val partitionmultiword : string list -> stringlist * string list

partition 函式的乙個引數為判斷條件(predicate),把輸入列表分成兩個列表,第乙個列表包含條件為 true 的元素,第二個包含剩餘的元素。清單11.10 是為前面宣告的函式而寫的兩個單元測試。

清單11.10 分割槽操作的單元測試(f#)

module partitiontests =

letpartitionkeeplength() =

lettest = ["a"; "a b"; "a b c"; "b" ]

letmulti, single = partitionmultiword(test)

assert.true(multi.length+ single.length = test.length)  [1]<-- 驗證返回列表的長度

letpartitionnonempty() =

lettest = ["seattle"; "new york"; "reading"]

letexpected = ["new york"], ["seattle"; "reading"]

assert.equal(expected,partitionmultiword(test))  <-- 用結構相等測試結果

清單11.10 顯示了兩個單元測試,實現的函式用fact 特性值標誌。第乙個測試[1]檢查結果返回兩個列表的長度之和,與原始列表的長度相同。這個簡單的方法能夠驗證經過分割槽以後,各部分沒有丟失任何元素。在這個清單中,只有乙個輸入(值test),我們也可以簡單地擴充套件這個測試,使用多個輸入列表。

第二個測試更有意義,因為使用了我們前面討論的結構相等特徵。它宣告了兩個值,乙個是測試的輸入值,另乙個表示測試輸出的期望值。expected 是元組值,有兩個列表,第乙個列表只包含乙個元素,是唯一的由多字組成的名字,第二個列表包含乙個字的名字,順序與在輸入列表中出現的相同。如果執行測試,判斷[2]成功,因為執行時使用結構相等,比較元組,和元組中包含的列表。實際上,是比較列表中所有單獨的字串。

正如我們所看到的,結構相等是簡單而重要的功能,簡化單元測試,雖然它不是函式式程式設計的基本內容。幫助測試的更重要、更本質的函式技術,是函式組合(function composition)。

測試建模 功能列表(Function List)

功能列表 function list 是一種功能測試 function testing 的建模方法,在啟發式測試策略模型 heuristic test strategy model 中位於 htsm product elements function 分支中。雖然它只覆蓋了很小的測試領域,不適合作為...

測試建模 功能列表(Function List)

功能列表 function list 是一種功能測試 function testing 的建模方法,在啟發式測試策略模型 heuristic test strategy model 中位於 htsm product elements function 分支中。雖然它只覆蓋了很小的測試領域,不適合作為...

構建測試體系和重構列表

一.自測 的價值 在日常開發中除錯佔據開發的絕大部分時間。確保所有的測試都是自動化完成,讓他們檢測自己的測試結果。在做增量開發時,不要等到開發結束在測試,每新增一點功能馬上測試。寫測試 的好處就是能夠更快的找到bug,節省後期除錯找bug的時間 重構過程中,你可以至執行少數測試項,它主要用來測試當下...