Mocking Recaptcha Rule class not resolving properly in Laravel

I have written test case like this:

 public function testUserCanRegister()
{


$captcha_mock=Mockery::mock('Recaptcha');
$captcha_mock->shouldReceive('passes')->with('recaptcha', 'yes')->andReturn(true);
$captcha_mock->shouldReceive('message')->andReturn('Verification failed on captcha');
$this->app->instance(Recaptcha::class, $captcha_mock);
$response = $this->post('/register', [
'name' => 'Abhiraj',
'email' => 'abhiraj@stockarea.io',
'password' => 'Hello@123',
'email_confirmation' => 'abhiraj@stockarea.io',
'phone' => 9871506133,
'recaptcha' => '1'
]);

$response->assertRedirect('/');
$response->assertSessionHasNoErrors();
}

And I am resolving this Recaptcha class on validator on RegisterController like this:

...//abovecode 

return Validator::make($data, [
'name' => ['required', 'string', 'max:255','regex:/(?=.*[a-z A-Z])/'],
'company_name' => ['string', 'max:255','regex:/(?=.*[a-z A-Z])/'],
'phone' => ['required','integer','digits:10'],
'recaptcha' => ['required',app(Recaptcha::class)],

...//more code



But I am getting thrown Exception which I am not aware much why it is. Here is the error:

Method Illuminate\Validation\Validator::validateMockery0Recaptcha#000000006c8e3645000000007c2d43d7 does not exist. {"exception":"[object] (BadMethodCallException(code: 0): Method Illuminate\\Validation\\Validator::validateMockery0Recaptcha#000000006c8e3645000000007c2d43d7 does not exist. at C:\\Stockarea\\stockarea-provider\\vendor\\laravel\\framework\\src\\Illuminate\\Validation\\Validator.php:1187

Though when I make instance of this class in same test method and try to run message() or pass() method it is correctly resolving the mocked Recaptcha. But something error in validator c



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/37xDh6c
via IFTTT

تعليقات

المشاركات الشائعة من هذه المدونة

I am unable to figure out how to create payment collection request, after a form has been submitted in laravel

laravel, mysql transaction not working after failed one time