使用Scala Test测试生成的curried函数

时间:2018-01-06 17:12:33

标签: scala scalatest

我很难尝试创建Scala测试来检查此功能:

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

我的第一个想法是验证是否将函数fx传递给curry(fx)函数,将返回它的咖喱版本。

任何提示?

1 个答案:

答案 0 :(得分:1)

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

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

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

IMO,针对一些不同的功能f进行测试,对于一些不同的ab进行测试,可以充分确保某些功能与此无关紧要。< / p>