首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mathematica笔记本中编写单元测试的好模式是什么?

在Mathematica笔记本中编写单元测试的好模式是什么?
EN

Stack Overflow用户
提问于 2009-07-04 17:45:20
回答 1查看 780关注 0票数 5

有人能推荐数学笔记本中单元测试代码的模式吗?我熟悉Workbench中的单元测试基础设施,但我也希望有一种很好的方法,可以在常规GUI中的简单笔记本中使用。

我一直在使用一个简单的"Expect“函数,如下所示。但问题是,我必须重新评估笔记本,并通过视觉扫描它的失败。什么是创建测试列表的好方法,或者交替扫描笔记本并生成这样的列表,这样就可以在一个调用中对所有测试进行评估?

代码语言:javascript
复制
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"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-23 08:59:59

因此,我所做的只是简单地列出一组语句,这些语句的计算值为true或false,这取决于测试是否通过。由于没有数以百计的测试,但通常少于10,这对我来说很好。

如果我要做的更突出,我可能会使用抛出,因为它简化了调试。

所以,我会:

代码语言:javascript
复制
Expect[ description_, val_, expr_ ] := 
If[
    val != expr,
    Throw[
        StringJoin[ "GOT UNEXPECTED VALUE ", ToString[expr], 
        " INSTEAD OF ", ToString[val] ]
        , "assertion exception"
    ]
]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1082663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档