5

Mathematicaノートブック内のユニット テスト コードのパターンを推奨できる人はいますか? Wolfram Workbench の単体テスト インフラストラクチャには精通していますが、通常の GUI の単純なノートブック内で使用できる優れたアプローチも必要です。

以下に示すように、単純な「期待」関数を使用しています。しかし、問題は、ノートブックを再評価し、失敗がないか視覚的にスキャンする必要があることです。テストのリストを作成する、または代わりにノートブックをスキャンしてそのようなリストを生成し、1 回の呼び出しですべてを評価できるようにする良い方法は何でしょうか?

In[8]:= Expect[ description_, val_, expr_ ] := 
If[
    val == expr,
    "ok",
    StringJoin[ "ERROR: GOT UNEXPECTED VALUE ", ToString[expr], 
    " INSTEAD OF ", ToString[val] ]
]

In[9]:= Expect[ "test passes", True, True ]
Out[9]= "ok"

In[10]:= Expect[ "test fails", True, False ]
Out[10]= "ERROR: GOT UNEXPECTED VALUE False INSTEAD OF True"
4

1 に答える 1

4

したがって、私がしていることは、テストが成功したかどうかに応じて、true または false に評価されるステートメントのリストを作成することだけです。何百ものテストはありませんが、通常は 10 未満であるため、これは私にとってはうまく機能します。

もっとアウトマティックに行うとしたら、デバッグを簡素化するため、おそらく Throw を使用するでしょう。

だから、私はするだろう:

Expect[ description_, val_, expr_ ] := 
If[
    val != expr,
    Throw[
        StringJoin[ "GOT UNEXPECTED VALUE ", ToString[expr], 
        " INSTEAD OF ", ToString[val] ]
        , "assertion exception"
    ]
]
于 2009-07-23T08:59:59.000 に答える