模拟一个类,编辑一个方法,使用另一个方法


Mock a class, edit one method and use another

我正在尝试测试一个方法,这取决于另一个。第一个方法注册用户,但必须检查给定的用户名是否可用。

我尝试了一些测试类

class Test {
    public function a() {
        return "ac";
    }
    public function b() {
        return $this->a();
    }
}

我想模拟类和编辑方法"a"的行为。

I tried following

$m = new Test();
$mock = 'Mockery::mock($m);
$mock->shouldReceive("a")
         ->andReturn("ad");
echo $mock->b();

但是方法"a"保持不变。

我如何编辑方法"a"的行为,或者,我怎么做呢?

谢谢

您可以编写这样的测试:

public function testMethodB() 
{
    $test = 'Mockery::mock('Test[a]');
    $test->shouldReceive('a')->andReturn('ad');
    assertEquals('ad', $test->b());
}