2009-02-18 46 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进行测试 - 框架本身会生成任意输入组合,并检查您的断言在每种情况下都是否成立。