f# - 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())
当我这样做时,编译错误消失了,但在运行时它抱怨函数的结果被管道忽略。
当然,起订量允许验证返回值的方法。我究竟做错了什么?
谢谢你的帮助
解决方案
问题是我使用了错误的方法......当我用 mock.VerifyFunc() 代替 mock.VerifyAction() 时,一切都如我所愿。
mock.VerifyFunc((fun x -> x.Send(It.IsAny<Alert>())), Times.Never())
推荐阅读
- matlab - 许多参数的所有可能组合 MATLAB
- python - How to find the best fitting function for a y-x non-linear relationship
- jquery - Passing value of a variable from one html page to another html page
- java - Restrict number of processed requests per Requestmapping
- dart - 在小部件之间共享尺寸
- java - JGit - Re-order/remove commits in Master branch before push to Upstream
- android - 使用 RecyclerView.Adapter 项目单击的内容动态加载片段
- c# - 为什么服务中的 File.ReadAllText 会将其目录重置为“C:\Windows\System32”?
- macos - 容器一次又一次重启,无法停止/删除/杀死
- node.js - 在 SDK V4 中使用 Microsoft Bot Framework 创建 Alexa Bot