Макетировать вызов функции для другой функции в том же классе - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть функция, которая вызывает другую функцию в том же классе.Я пытаюсь проверить, вызван ли этот метод в моих модульных тестах, но не могу найти способ его смутить.

Вот пример вызова метода

public function follow($user_id, $followsfeed, $target_user_id)
    {
        $news_feeds = $this->getNewsFeeds($user_id);

    }

Iхочу смоделировать метод getNewsFeed и утверждать, что он вызывается, когда я выполняю follow.

Каков наилучший способ добиться этого.как я не могу тренироваться, как создать внутренний макет объекта.

1 Ответ

0 голосов
/ 15 ноября 2018

Вы можете использовать частичные насмешки , например, на вашем тестовом классе вы можете сделать:

public function test_follow()
{
    $mock = Mockery::mock('App\Services\SomeService')->makePartial();
    $mock->shouldReceive('getNewsFeeds')
      ->once()
      ->with("id1","id2")
      ->andReturn($someNews);
    $mock-> follow("id1","id2"); 
}

Вы также можете использовать PHPUnit test-doubles

Надеюсь, что эта помощь

...