使用PHPUnit创建的模拟在调用类时返回“NULL”

时间:2011-01-27 03:56:04

标签: php unit-testing phpunit

代码:


$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'));

输出:



string(4) "-aaa"
string(3) "bbb"
NULL
NULL

1 个答案:

答案 0 :(得分:3)

确切地说明了你所说的内容,并且只要我能看到它就能正常工作。

你创建一个“假的”ORM_User并告诉xxx函数返回“aaa”和“bbb”并且它会这样做。

然后你创建一个真正的 ORM_USER并调用它,它返回null但是这是phpunit的范围。你只是在那里打电话给真正的班级,我不知道你在哪里得到它。

也许告诉我们你要做什么?