2010-09-10 101 views
4

我想測試我的案例類構造函數的參數,並拋出一個例外,如果他們失敗了某些測試。編譯器在我嘗試編寫我自己的apply方法時抱怨(多'apply'方法。如何測試一個case類構造函數的參數?

我想我可以使它成爲一個非case類,並且自己做了apply/unapply構造函數字段,但我希望不。

感謝

回答

15
case class Picky(i: Int, s: String) { 
    require(i % 2 == 0, "i must be even") 
    require(s.length < 50, "s length must be less than 50 characters") 

    // ... 
} 
+0

正是我一直在尋找 – Jim 2010-09-10 19:51:56

+0

在你結束了正從想客戶端代碼客場必須處理異常(不良FP碼味),並希望預防性解決方案的情況下更多符合像Option,Try或Either這樣的FP解決方案,我只是在StackOverflow的姊妹站點CodeReview上發佈了一些信息。如果您有時間查看它,我將不勝感激您的任何反饋;即幫助減少樣板,解決問題空間的更好方法等:http://codereview.stackexchange.com/questions/60645/reducing-boilerplate-when-validating-parameters-and-using-a-tuple-for-該-parame – chaotic3quilibrium 2014-08-20 23:20:04

相關問題