2016-08-31 3 views
0

Я хотел бы разбить метод getReviewsCommentModel, поэтому я могу проверить, вызван ли он в методе ApiReviewCommentsController.Как я могу определить методы в классе зависимостей контроллера

Это мой метод:

class ApiReviewCommentsController extends ApiController 
{ 
    private $commentsModel; 

    public function __construct(CommentsModel $commentsModel) 
    { 
     $this->commentsModel = $commentsModel; 
     $this->commentsModel->getReviewComment(); 

    } 
} 

Это мой тест:

public function testThatItShouldAddGetAllCommentsForReviewId(){ 


    $reviewId = 1; 


    $commentsModel = $this->getMockBuilder(CommentsModel::class)->getMock(); 

    $controller = new ApiReviewCommentsController($commentsModel); 

    $commentsModel->expects($this->once()) 
     ->method('getReviewComments') 
     ->willReturn(false); 

} 

Это моя ошибка:

не соответствует ожидаемому для названия метода равно при вызове 1 раз (и).

Метод должен был называться 1 раз, фактически называемый 0 раз.

Пожалуйста, почему метод не называется?

ответ

0

Вы делаете это назад.

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

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