如何在函数调用期间测试事件是否被调度?
public function updateUser() {
//Do some update stuff
$event = new UserUpdated($user);
$event->attach([
new SendEmailAddressChangeEmail($emailAddress),
new SendEmailAddressChangeEmail($oldEmailAddress),
]);
$event->dispatch();
}
除了设置电子邮件地址并查看是否发送了电子邮件之外,我如何检查(使用PHP单元)调度员实际上是否正在调度这些事件?我假设我需要创建某种类型的模拟,但我不确定如何为完全不相关的代码创建模拟 .
UserUpdated事件代码:
class UserUpdated extends BaseEvent
{
public $user;
public function __construct(User $user) {
$this->user = $user;
}
}
和相关的SendEmailAddressChanged处理程序代码:
class SendEmailAddressChangeEmail implements Contracts\HandlerInterface
{
protected $emailAddress;
public function __construct($emailAddress) {
$this->emailAddress = $emailAddress;
}
public function handle($event) {
EmailUtils::sendEmailAddressChangeEmail($this->emailAddress, $event->user->userName, $event->user->userID);
}
}