2016-04-23 188 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)