Laravel 5.1嘲笑“独特”验证规则

时间:2016-01-04 21:57:06

标签: php validation unit-testing laravel laravel-5.1

我们在应用程序上使用“唯一”规则进行验证,但对于测试,我们通过使用存储库模式来模拟数据库层。有没有办法模拟unique规则,以便它不会尝试检查数据库?

我尝试模仿Illuminate\Validation\Validator::validateUnique它不起作用,但因为该方法受到保护。

1 个答案:

答案 0 :(得分:2)

唯一规则以及其他一些规则(例如存在)使用在线验证程序进行验证检查。默认情况下,使用 DatabasePresenceVerifier 。它实现了由2个方法组成的 PresenceVerifierInterface 。您可以模拟该验证程序的方法并在测试期间使用它。您可以使用

访问验证程序
\Validator::getPresenceVerifier()
\Validator::setPresenceVerifier()