2016-04-23 167 views
4

我很困惑这个符号<:和返回类型T => T。 这似乎返回一个函数。当单元测试这个函数时,我得到了一个函数。我如何检查结果?单元测试函数返回函数

def prepend[T <: Message](node: Set[String]): T => T = { out => 
    ... 
    out.append("test") 
    } 
+1

只是测试返回的函数是否按预期工作。 –

+0

请参阅http://stackoverflow.com/questions/12725257/how-to-compare-scala-function-values-for-equality –

回答

3
T <: Message 

装置T应该是延伸消息的任何类型。

现在功能相等/同构是TTBOMK不可能的。这意味着没有办法比较a == b,其中a:T => T和b:T => T。

您只能生成随机输入并确认它们给出相同的结果。不是平等的证明,但它可能比没有好。

如果你的结果是val t: T=>T = prepend(...)你可以运行t作为t(some T)