Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHPUnit return“创建模拟;空";上课的时候_Php_Unit Testing_Phpunit - Fatal编程技术网

使用PHPUnit return“创建模拟;空";上课的时候

使用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'

代码:

$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” 无效的 无效的
就我所见,它也完全按照你所说的去做,并且工作得很好

您创建了一个“假”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