What is a Generative Unit Test Framework?

跟風遠走 提交于 2019-12-04 01:33:58

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.

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