这本来应该是一个评论,但是太长了。
super
如果超级控制器不会做 它不应该 做的事情, 那么 在测试前打电话是无害的。- 可以通过静态构建器方法来防止它,您不需要构建器。但这不值得。
- 我怀疑分组测试 通常 很有用;如果是这样,那么已经有这样的方法了。但是,如果您需要两次以上这样的具体事情,那么请编写自己的东西。如果经常出现,请将其作为RFE报告给番石榴团队。
- 我很确定,匹配器在这里是一个过大的杀伤力,因为您只是在创建一个例外,即,很少使用的东西(我希望)。由于您的测试仅是运行时,因此 并不能真正帮助 您捕获错误。如果可以静态地确保“正确地”构造的异常,那将很好,但是在纯Java中这是不可能的。
更重要的是:您抛出的异常可能不如没有所有检查的异常。假设用户提供了一个原因并且没有消息。您认为这很糟糕,但是您可以使用没有任何原因的NPE替换它。更糟
看番石榴
Preconditions.format(私人包装)。他们可以先检查正确数量的参数,但不能。您可以提供太少或太多,这是一个错误,但忽略它是处理它的最佳方法。



