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 :
In a generative test the engineer describes the shape of the data, and then defines the properties that the results should have, and the test runner provides randomized data to check against.
MbUnit (previously named GUnit) is a generative test unit framework, built for C sharp testing. MbUnit implements the Simple Test Pattern and makes it really easy to use fixtures.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With