NFluent 的 FSharpList 断言?
FSharpList assertions with NFluent?
我在 nfluent documentation 上读到,您可以这样断言列表:
var inteers = new int[] { 1, 2, 3, 4, 5, 666 };
Check.That(integers).Contains(3, 5, 666);
但是当我在 F# 中尝试这个时,我似乎无法让它工作:
let myList : int list = [1;2;3]
Check.That(events).Contains(1, 2, 3)
此处显示错误消息:
如何让列表断言在 F# 中工作?
更新
在我的实际代码中,F# 函数 returns 和 FSharpList
我不想更改它,所以我不能简单地将类型更改为例如seq
.
F# 不像 C# 那样进行隐式转换。方法签名期望具有 IEnumerable,但您提供了一个列表。这就是错误所说的。
最简单的解决方法是创建一个序列,它与 C# 中的 IEnumerable 相同:
let myList : int list = [1;2;3]
let mySeq = list |> Seq.ofList
Check.That(mySeq).Contains(1, 2, 3)
我在 nfluent documentation 上读到,您可以这样断言列表:
var inteers = new int[] { 1, 2, 3, 4, 5, 666 };
Check.That(integers).Contains(3, 5, 666);
但是当我在 F# 中尝试这个时,我似乎无法让它工作:
let myList : int list = [1;2;3]
Check.That(events).Contains(1, 2, 3)
此处显示错误消息:
如何让列表断言在 F# 中工作?
更新
在我的实际代码中,F# 函数 returns 和 FSharpList
我不想更改它,所以我不能简单地将类型更改为例如seq
.
F# 不像 C# 那样进行隐式转换。方法签名期望具有 IEnumerable,但您提供了一个列表。这就是错误所说的。 最简单的解决方法是创建一个序列,它与 C# 中的 IEnumerable 相同:
let myList : int list = [1;2;3]
let mySeq = list |> Seq.ofList
Check.That(mySeq).Contains(1, 2, 3)