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

PHPUnit模拟对象的属性

如何解决《PHPUnit模拟对象的属性》经验,为你挑选了1个好方法。

我正在锁定一种模拟对象并填充其属性的方法.以下是使用另一个对象的属性的方法示例:

class MyClass {

    private $_object;

    public function methodUnderTest($object) {
        $this->_object = $object;
        return $this->_object->property
    }
}

要单元测试这个方法我应该$objectgetMockBuilder()方法创建一个模拟PHPUnit.但我找不到一种方法来模拟属性$object,只是方法.



1> Riccardo Ced..:

要向模拟对象添加属性,只需像通常使用对象一样设置它们:

$mock = $this->getMockBuilder('MyClass')
             ->disableOriginalConstructor()
             ->getMock();

$mock->property = 'some_value';

$mock->property 现在会回来 'some_value'

感谢akond

我的项目的Ps,这对某些类不起作用,当我尝试调用$mock->property它时只返回NULL


确保您不在原始类中使用魔术方法.
如果您的类使用魔术方法,则实际上必须模拟__get()方法并使其返回所需的输出。这就是我某些班级失败的原因
推荐阅读
author-avatar
happy柒月卍520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有