我对Laravel 5和PHPUnit有一些奇怪的问题.当我试图模仿Laravel的外观(例如Auth,View,Mail)时,我总是得到这个例外:
Mockery\Exception\InvalidCountException:方法发送("emails.register",数组('用户'=''对象(MCC\Models\Users\User)',),对象(Closure))来自Mockery_0_Illuminate_Mail_Mailer应该被正确调用1次但是叫了0次.
我有"should be called exactly 1 times but called 0 times."部分问题.这是我的测试代码:
public function testSendEmailToNewUserListener()
{
$user = factory(MCC\Models\Users\User::class)->create();
Mail::shouldReceive('send')
->with(
'emails.register',
['user' => $user],
function ($mail) use ($user) {
$mail->to($user->email, $user->name)
->subject('Thank you for registering an account.');
}
)
->times(1)
->andReturnUsing(function ($message) use ($user) {
dd($message);
$this->assertEquals('Thank you for registering an account.', $message->getSubject());
$this->assertEquals('mcc', $message->getTo());
$this->assertEquals(View::make('emails.register'), $message->getBody());
});
}
Run Code Online (Sandbox Code Playgroud)
我放弃了dd($message),因为我想了解有关返回值的详细信息(看起来如何$message->getTo()).
我的TestCase类:
<?php
/**
* Provides default values for functional tests.
*
* …Run Code Online (Sandbox Code Playgroud)