2010-09-10 69 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

相关问题