我正在使用PHPUnit 4.6.4
我很难理解如何在测试类中模拟一个方法,我在网上看了一些其他的例子,但似乎没有用。
我在Auth类中有以下函数
public function check_that_user_is_admin() {
if ($this->get_user_role() !== '1') {
// only admin allowed to perform this action
return FALSE;
}
return TRUE;
}
'get_user_role'检查活动会话以查看当前用户具有的用户级别并返回其值。
这是对上述功能的测试
public function testAuth() {
$mock = $this->getMockBuilder('Auth')->disableOriginalConstructor()->getMock(array('get_user_role'));
$mock->expects($this->once())->method('get_user_role')->with($this->returnValue(1));
$this->assertTrue($mock->check_that_user_is_admin());
}
我每次运行测试时都收到: “无法断言null为真。”
答案 0 :(得分:0)
我碰巧找到答案......
$mock = $this->getMockBuilder('Auth')
->disableOriginalConstructor()
->setMethods(array('get_user_role'))
->getMock();
$mock->expects($this->once())
->method('get_user_role')
->willReturn("2");
$this->assertFalse($mock->check_that_user_is_admin());