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
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire