Moq.FSharp.Extensions 中的 VerifyAction 问题



尝试为我的 F# 项目创建单元测试时遇到了麻烦。 我得到的最接近的是使用Moq.FSharp.Extensions库。 但是,我收到编译错误。

let mock = new Mock<IMonitor>()
mock.SetupFunc(fun x -> x.Send(It.IsAny<Alert>())).Returns("OK").End
let obj = mock.Object
let uut = new Scheduler(context, obj, null, null, 10)
let result = uut.Run()
// Assert
mock.VerifyAction((fun x -> x.Send(It.IsAny<Alert>())), Times.Never())

我在最后一行收到编译错误。>>"此表达式应具有类型'unit',但此处具有类型字符串">

我尝试像这样包装被抱怨的功能:

mock.VerifyAction((fun x -> (x.Send(It.IsAny<Alert>())) |> ignore),
Times.Never())

当我这样做时,编译错误消失了,但在运行时它抱怨忽略了被管道传输的函数的结果。

当然,Moq 允许验证返回值的方法。 我做错了什么?

感谢您的任何帮助

问题是我使用了错误的方法... 当我替换模拟时。验证Func((代替模拟。验证操作(( 这一切都按照我想要的方式工作。

mock.VerifyFunc((fun x -> x.Send(It.IsAny<Alert>())), Times.Never())

最新更新