我在测试我的一个方法时遇到了麻烦,因为它使用的是没有模型的供应商类。
嗯,问题是我想要那种方法来回报我想要的东西。 有人告诉我,嘲笑一种方法就是让它返回我想要的东西。
例如,当我调用“foo()”方法时,我希望它始终为我返回。
我该怎么办?在CakePHP食谱我可以找到:
$Posts = $this->generate('Posts', array(
'methods' => array(
'isAuthorized'
),
'models' => array(
'Post' => array('save')
),
'components' => array(
'RequestHandler' => array('isPut'),
'Email' => array('send'),
'Session'
)
));
所以我想我应该使用第一个选项:方法 但是......如何让它回归我想要的东西?
感谢。
答案 0 :(得分:4)
请参阅我在此问题中给出的答案:How can i test an Add function on CakePHP2.0
$Posts = $this->generate('Posts', array(
'methods' => array(
'isAuthorized'
),
'models' => array(
'Post' => array('save')
),
'components' => array(
'RequestHandler' => array('isPut'),
'Email' => array('send'),
'Session'
)
));
// tell PHPUnit that `isAuthorized` should return true any time it's called
$Posts
->expects($this->any())
->method('isAuthorized')
->will($this->returnValue(true));
// tell PHPUnit to expect `isPut` once, and to return false
$Posts
->RequestHandler
->expects($this->once())
->method('isPut')
->will($this->returnValue(false));
有关模拟的更多信息:http://www.phpunit.de/manual/3.0/en/mock-objects.html