问题标签 [fsunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
80 浏览

f# - FsUnit.Xunit 列表应该包含一个 x 使得 fx

我不知道如何在FsUnit.Xunit.

我想检查列表中的至少一个元素是否满足谓词。我知道如何使用 来编写它should be True,但通常您可以通过使用专门的函数来获得更好的错误消息。

希望这段代码清楚地说明了我想要实现的目标:

0 投票
1 回答
33 浏览

f# - F# - (NUnit ApplyTo) 成员匹配多个重载...请将其限制为一个

我正在尝试编写自定义等式约束来比较 2 个对象。

它抱怨是因为 ApplyTo 实现匹配多个重载,我找不到正确的语法。
理想情况下,我喜欢与公司选项进行比较,但仍然只是公司很好。

涉及的类型如下:

并且我正在尝试编写我的等式约束,因为简单的现有equal不能与 Types 正常工作(列表,如果已排序,也总是不同)

如何正确覆盖ApplyTo函数?

0 投票
1 回答
52 浏览

unit-testing - 测试功能返回选项

考虑对定义长度受限字符串的模块进行单元测试,作为表示用户名的类型:

确保函数返回None无效输入的单元测试看起来很简单:

但是,针对函数返回的情况的单元测试Some似乎需要额外的一行来保证match表达式的完整性:

这对我来说看起来不对,因为我的测试必须定义代码来测试无论如何都必须产生失败的“不愉快”路径。

我希望我可以写这个

但它不会编译(未定义值或构造函数“用户名”)。

有没有办法编写一个option<T>不需要明确检查“不愉快”路径(例如| None -> Assert.True(false))的函数返回的单元测试?我愿意为UserName模块添加更多类型和/或功能以使其更易于测试。

0 投票
1 回答
53 浏览

.net - FsUnit 显示 F# 类型的两个相同的预期值

当然,下面的两个测试失败了。但为什么错误消息显示两个相同的预期值?有没有办法只显示一个?

myTest返回Expected: <B> or <B> But was: <A>

myTest2返回Expected: <{ N = 2 }> or <{ N = 2 }> But was: <{ N = 1 }>

Expected: <B> But was: <A>这在使用普通 NUnit 时按预期工作(例如)。

当然,在处理更复杂的类型时,这会变得非常糟糕。

测试.cs:

项目文件: