热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我如何正确测试Laravel事件?

如何解决《我如何正确测试Laravel事件?》经验,请问有什么解决方案?

我正在为一个模型编写测试,该模型在其中一个属性发生更改时触发事件.不幸的是,我无法找出测试它的最佳方法.型号代码是:

class Foo extends Eloquent {
   public function setNameAttribute($value) {
        $this->attributes['name'] = $value;
        if($this->exists && ($this->original['name'] != $value)) {
            Event::fire('foo.NameChange', array($this));
        }
    }
}

我对事件火灾的初步测试:

$bar = Foo::first();
Event::shouldReceive('fire')->once()->with('foo.NameChange', array($bar));
$bar->name = 'test';

问题是,如果出现以下情况,上述测试仍然通过:

根本没有发生任何事件

我正在第二次更改模型的名称(这应该是第二次触发事件,对吧?)

如果一个foo.NameChange事件发生,我怎样才能使我的测试通过?所有其他的senario都不应该通过我的测试.


推荐阅读
author-avatar
谁能吿诉我
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有