哪些单元测试框架可用于F#
|
我正在专门寻找使我能够利用该语言独特功能的框架。我知道FsUnit。您会推荐其他东西吗,为什么?
没有找到相关结果
已邀请:
3 个回复
掏得透垦滩
产生以下失败消息
FsUnit和Unquote具有相似的任务:允许您以惯用的方式编写测试,并生成有用的故障消息。但是FsUnit实际上只是NUnit约束的一个小包装,创建了一个DSL,将对象构造隐藏在可组合函数调用之后。但这要付出代价:您会在断言中丢失静态类型检查。例如,以下内容在FsUnit中有效
但是使用Unquote,您可以获得F#的所有静态类型检查功能,因此等效断言甚至无法编译,从而阻止了我们在测试代码中引入错误。
同样,由于报价能够在编译时捕获有关断言表达式的更多信息,因此失败消息也丰富得多。例如,失败的FsUnit断言“ 4”会产生消息
而失败的Unquote断言
会产生以下失败消息(也请注意更清洁的堆栈跟踪)
当然,从这个答案开头的第一个例子中,您可以看到如何获得丰富而复杂的Unquote表达式和失败消息。 在FsUnit DSL上使用普通F#表达式作为测试断言的另一个主要好处是,它非常适合开发单元测试的F#过程。我认为许多F#开发人员都是在FSI的帮助下开始开发和测试代码的。因此,从临时FSI测试到正式测试非常容易。实际上,除了对xUnit和NUnit的特殊支持(尽管也支持任何基于异常的单元测试框架)之外,所有Unquote运算符也都在FSI会话中工作。
铰齐插
禽兢玫坞劲