使用PHPUnit return“创建模拟;空";上课的时候
代码: $mockObject=$this->getMock('ORM_User'); $mockObject->expects($this->at(0)) ->方法('xxx') ->使用($this->equalTo('a')) ->威尔($this->returnValue('aaa'); $mockObject->expects($this->at(1)) ->方法('xxx') ->使用($this->equalTo('b')) ->将($this->returnValue('bbb')); 变量转储(“-”$mockObject->xxx('a')); 变量转储($mockObject->xxx('b'); $tmp=新的ORM_用户(); 变量转储($tmp->xxx('a')); 变量转储($tmp->xxx('b')); 输出: $mockObject = $this->getMock('ORM_User'); $mockObject->expects($this->at(0)) ->method('xxx') ->with($this->equalTo('a')) ->will($this->returnValue('aaa')); $mockObject->expects($this->at(1)) ->method('xxx') ->with($this->equalTo('b')) ->will($this->returnValue('bbb')); var_dump("-".$mockObject->xxx('a')); var_dump($mockObject->xxx('b')); $tmp = new ORM_User(); var_dump($tmp->xxx('a')); var_dump($tmp->xxx('b')); 字符串(4)“-aaa” 字符串(3)“bbb” 无效的 无效的使用PHPUnit return“创建模拟;空";上课的时候,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,代码: $mockObject=$this->getMock('ORM_User'); $mockObject->expects($this->at(0)) ->方法('xxx') ->使用($this->equalTo('a')) ->威尔($this->returnValue('aaa'); $mockObject->expects($this->at(1)) ->方法('xxx') ->使用($this->equalTo('b')) ->将($this->returnValue('bbb'
就我所见,它也完全按照你所说的去做,并且工作得很好 您创建了一个“假”ORM_用户,并告诉xxx函数返回“aaa”和“bbb”,它就会这样做 然后创建一个realORM_用户并调用它,它返回null,但这超出了phpunit的范围。你只是打电话给那里的真正的学生,我不明白你在说什么
也许可以告诉我们您想做什么?在您的代码中,mock返回数据,real object返回nulls.zerkms,有什么办法吗?thank'sAdditional:看起来,您(Felipe)使用
\uu call()
捕获对未定义方法的所有调用,并返回null
。如果不是,你应该考虑你的方法命名约定(xxx()
不是一个好名字)。。。谢谢
string(4) "-aaa"
string(3) "bbb"
NULL
NULL