What is a Generative Unit Test Framework?

房东的猫 提交于 2019-12-05 12:52:11

问题


On stackoverflow I've come across mbunit. On its page it states that mbunit is a generative unit test framework, but I can't find anywhere that describes what a Generative unit test framework is.

I was hoping to get :

  • A definition
  • Links to articles about what a Generative Unit Test framework is and isn't.

回答1:


A generative testing framework is one where the code itself generates test cases.

Typically you write code to generate test cases according to one or more assumptions you would like to test.

I'm not fambiliar with mbunit itself, but for example using the Clojure generative test framework test.generative you can write tests like:

(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

This test directly specifies the assumption you want to test (i.e. that the addition of two longs always results in an integer).

The important point is that you don't have to specify particular long vales for testing - the framework itself will generate arbitrary combinations of inputs and check that your assertions hold true in every case.



来源:https://stackoverflow.com/questions/562845/what-is-a-generative-unit-test-framework

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!