Смоделируйте класс, отредактируйте один метод и используйте другой

Я пытаюсь проверить один метод, который зависит от другого. Первый метод регистрирует пользователя, но должен проверить, доступно ли данное имя пользователя.

Я пробовал что-то с тестовым классом

class Test {
    public function a() {
        return "ac";
    }

    public function b() {
        return $this->a();
    }
}

И я хочу издеваться над классом и редактировать поведение метода «а».

Я пытался следовать

$m = new Test();

$mock = \Mockery::mock($m);
$mock->shouldReceive("a")
         ->andReturn("ad");

echo $mock->b();

Но метод «а» остается неизменным.

Как я могу изменить поведение метода «а» или как это сделать по-другому?

Спасибо


person Michal Hojgr    schedule 01.04.2013    source источник


Ответы (1)


Вы можете написать такой тест:

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

    assertEquals('ad', $test->b());
}

Я думаю, это работает!

person Alexandre Butynski    schedule 05.06.2013