stackoverflow で mbunit に出会いました。そのページには、mbunit は生成ユニット テスト フレームワークであると記載されていますが、生成ユニット テスト フレームワークとは何かを説明している場所が見つかりません。
私は得たいと思っていました:
- 定義
- Generative Unit Test フレームワークとは何かに関する記事へのリンク。
stackoverflow で mbunit に出会いました。そのページには、mbunit は生成ユニット テスト フレームワークであると記載されていますが、生成ユニット テスト フレームワークとは何かを説明している場所が見つかりません。
私は得たいと思っていました:
ジェネレーティブ テスト フレームワークは、コード自体がテスト ケースを生成するフレームワークです。
通常、テストしたい 1 つ以上の仮定に従ってテスト ケースを生成するコードを記述します。
私は mbunit 自体に詳しくありませんが、たとえば 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
このテストは、テストしたい仮定を直接指定します (つまり、2 つの long を足すと常に整数になるということです)。
重要な点は、テストのために特定の値を指定する必要がないということです。long
フレームワーク自体が入力の任意の組み合わせを生成し、アサーションがすべての場合に当てはまることを確認します。