使用 Scala Test 测试生成的柯里化函数

Testing a generated curried function with Scala Test

我很难尝试创建一个 Scala 测试来检查这个函数:

def curry[A,B,C](f: (A,B) => C): A => (B => C) =
  a => b => f(a,b)

我的第一个想法是验证如果给定一个函数 fx 传递给 curry(fx) 函数,是否会 return 它的柯里化版本。

有什么建议吗?

测试它的一种方法是将不同的 f 传递给它,看看是否返回了您期望的功能。例如,您可以测试 returns 参数作为元组的 f:

def f(x: String, y: Int) = (x, y)

curry(f)("4")(7) must be(("4", 7))

IMO,针对一些不同的功能 f 和一些不同的 ab 测试它足以确保像这样微不足道的东西按预期工作.