14

stackoverflow で mbunit に出会いました。そのページには、mbunit は生成ユニット テスト フレームワークであると記載されていますが、生成ユニット テスト フレームワークとは何かを説明している場所が見つかりません。

私は得たいと思っていました:

  • 定義
  • Generative Unit Test フレームワークとは何かに関する記事へのリンク。
4

1 に答える 1

22

ジェネレーティブ テスト フレームワークは、コード自体がテスト ケースを生成するフレームワークです。

通常、テストしたい 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フレームワーク自体が入力の任意の組み合わせを生成し、アサーションがすべての場合に当てはまることを確認します。

于 2012-08-09T03:56:38.767 に答える