我们在应用程序上使用“唯一”规则进行验证,但对于测试,我们通过使用存储库模式来模拟数据库层。有没有办法模拟unique
规则,以便它不会尝试检查数据库?
我尝试模仿Illuminate\Validation\Validator::validateUnique
它不起作用,但因为该方法受到保护。
答案 0 :(得分:2)
唯一规则以及其他一些规则(例如存在)使用在线验证程序进行验证检查。默认情况下,使用 DatabasePresenceVerifier 。它实现了由2个方法组成的 PresenceVerifierInterface 。您可以模拟该验证程序的方法并在测试期间使用它。您可以使用
访问验证程序\Validator::getPresenceVerifier()
\Validator::setPresenceVerifier()