2009-02-18 52 views
14

關於stackoverflow我遇到過mbunit。在它的頁面上,它指出mbunit是一個生成單元測試框架,但是我找不到任何描述生成單元測試框架的地方。什麼是生成單元測試框架?

我希望得到:

  • 的定義
  • 鏈接到什麼創成式單元測試框架,而不是物品。

回答

22

生成測試框架是代碼本身生成測試用例

通常情況下,您會根據您想要測試的一個或多個假設編寫代碼來生成測試用例。

我不跟MbUnit的本身fambiliar,但例如使用Clojure的生成測試框架test.generative您可以編寫測試:

(defspec integers-closed-over-addition 
    (fn [a b] (+' a b))     ;; input fn 
    [^long a ^long b]      ;; input spec 
    (assert (integer? %)))     ;; 0 or more validator forms 

這個測試直接指定要測試的假設(即中添加兩個長整數總是會導致一個整數)。

重要的一點是,您不必指定特定的long vales進行測試 - 框架本身會生成任意輸入組合,並檢查您的斷言在每種情況下都是否成立。