我很难尝试创建Scala测试来检查此功能:
def curry[A,B,C](f: (A,B) => C): A => (B => C) =
a => b => f(a,b)
我的第一个想法是验证是否将函数fx
传递给curry(fx)
函数,将返回它的咖喱版本。
任何提示?
答案 0 :(得分:1)
测试它的一种方法是将不同的f
传递给它,看看你是否正在恢复你期望的功能。例如,您可以测试将参数作为元组返回的f:
def f(x: String, y: Int) = (x, y)
curry(f)("4")(7) must be(("4", 7))
IMO,针对一些不同的功能f
进行测试,对于一些不同的a
和b
进行测试,可以充分确保某些功能与此无关紧要。< / p>