请看以下 F# 代码示例:
let parse mapDate mapLevel mapMessge (groups : string list) =
{
DateTime =
mapDate(
groups.[2] |> Int32.Parse,
groups.[0] |> Int32.Parse,
groups.[1] |> Int32.Parse)
Level = mapLevel groups.[3]
Message = mapMessge groups.[4]
}
我可以独立单元测试地图函数,但是如何单元测试该函数正确调用传递的函数参数?在C#中,我会使用模拟对象(mocks)并验证对它们的调用。最近我看了一个 pluralsight 视频,讲述了函数式语言通常使用存根(stubs)而不是模拟对象(mocks)。在这里,我可以传入一个函数,如果没有得到预期的参数,则会抛出异常,但我并不太确定这种方法是否可行。我只是想知道有没有任何一般的函数式编程模式来单元测试这种高阶函数?
parse
针对给定的输入返回了正确的输出,那么实际上它就已经正确地调用了它的参数函数,是吗? - YawarmapMessage
没有被使用是故意的吗? - Robert Nielsen