如何测试一个案例类构造函数的参数?

11

我想测试我的案例类构造函数的参数,如果它们未通过某些测试,则抛出异常。当我尝试编写自己的apply方法时,编译器报错(存在多个“apply”方法)。

我想我可以将其变成非案例类,并自己执行apply / unapply构造函数字段操作,但我希望不必这样做。

谢谢

1个回答

25
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")

  // ...
}

1
如果你不想让客户端代码处理异常(FP代码味道不好),而是想要一种更符合FP解决方案的预防性解决方案,比如Option、Try或Either,我刚在StackOverflow的姐妹网站CodeReview上发布了一些相关内容。如果你有时间看一下,我会很感激你对它提出的任何反馈意见;例如帮助减少样板文件、更好地处理问题空间等等:http://codereview.stackexchange.com/questions/60645/reducing-boilerplate-when-validating-parameters-and-using-a-tuple-for-the-parame - chaotic3quilibrium

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接