2015-08-29 80 views
1

我有一個lambda函數下面的代碼:代碼覆蓋率lambda函數

obj.method(param,() -> { 
     //code here 
}) 

我怎樣才能通過測試涵蓋了lambda函數的代碼?

+4

這一切都取決於'obj.method()'用它做什麼。如果它立即調用它,那麼就調用調用'obj.method()'的方法。如果它稍後保存,則確保稍後的操作由您的測試執行。 –

+3

你能分享一個更完整的片段嗎? – Mureinik

+5

我傾向於將非平凡的lambda函數轉換爲方法,並簡單地使用方法引用。這樣你就保留了lambda提供的優點 - 簡潔的代碼傳遞迴調 - 但也保留了方法提供的優勢 - 作爲獨立單位的可視性。 –

回答

2

你可以使用反射,但這很可能是容易出錯和反生產的。

我建議你調用使用lambda的方法。