Scala 如何测试案例类构造函数的参数?
我想测试我的case类构造函数的参数,如果它们没有通过某些测试,就会抛出一个异常。当我试图编写自己的apply方法(多个“apply”方法)时,编译器抱怨道 我想我可以让它成为一个非case类,自己做apply/unapply构造函数字段的工作,但我不希望这样 谢谢Scala 如何测试案例类构造函数的参数?,scala,case-class,Scala,Case Class,我想测试我的case类构造函数的参数,如果它们没有通过某些测试,就会抛出一个异常。当我试图编写自己的apply方法(多个“apply”方法)时,编译器抱怨道 我想我可以让它成为一个非case类,自己做apply/unapply构造函数字段的工作,但我不希望这样 谢谢案例类挑剔(i:Int,s:String){ 要求(i%2==0,“我必须是偶数”) 要求(s.长度
案例类挑剔(i:Int,s:String){
要求(i%2==0,“我必须是偶数”)
要求(s.长度<50,“s.长度必须小于50个字符”)
// ...
}
这正是我所期待的,如果您最终不再希望客户端代码必须处理异常(糟糕的FP代码味道)想要一个与FP解决方案更一致的预防性解决方案,如Option、Try或Other,我刚刚在StackOverflow的姐妹网站CodeReview上发布了一些关于它的信息。如果您有时间查看,我将非常感谢您对它的任何反馈;例如,帮助减少样板文件,更好地处理问题空间的方法,等等。:
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")
// ...
}