有人能推荐数学笔记本中单元测试代码的模式吗?我熟悉Workbench中的单元测试基础设施,但我也希望有一种很好的方法,可以在常规GUI中的简单笔记本中使用。
我一直在使用一个简单的"Expect“函数,如下所示。但问题是,我必须重新评估笔记本,并通过视觉扫描它的失败。什么是创建测试列表的好方法,或者交替扫描笔记本并生成这样的列表,这样就可以在一个调用中对所有测试进行评估?
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"发布于 2009-07-23 08:59:59
因此,我所做的只是简单地列出一组语句,这些语句的计算值为true或false,这取决于测试是否通过。由于没有数以百计的测试,但通常少于10,这对我来说很好。
如果我要做的更突出,我可能会使用抛出,因为它简化了调试。
所以,我会:
Expect[ description_, val_, expr_ ] :=
If[
val != expr,
Throw[
StringJoin[ "GOT UNEXPECTED VALUE ", ToString[expr],
" INSTEAD OF ", ToString[val] ]
, "assertion exception"
]
]https://stackoverflow.com/questions/1082663
复制相似问题