Метод тестирования контроллера, который не связан ни с какими маршрутами - PullRequest
0 голосов
/ 19 марта 2019

Итак, я даю образец моего контроллера и файла web.php.

controller
{
   public function add() 
   {
      //Method called via web.php
   }
   public function multiply() 
   {
      //how to access this while testing
   }
}

web.php

route::get('/add','controller@add');

А теперь я хочу выполнить модульное тестирование

case1: add $response = $this->get(route('add')); Теперь он отправит запрос на получение при обращении к /add и доступу к методу контроллера add.И затем я могу использовать различные утверждения для проверки его функциональности.

case2: multiply Здесь не указан какой-либо маршрут, поэтому он не сможет получить доступ к методу контроллера.

Как можноЯ проверяю свой метод умножения в таком случае

ОБНОВЛЕННЫЙ ОТВЕТ

Итак, из всех ответов и комментариев я понял, что в Laravel

  1. Модульное тестирование - создайте экземпляр контроллера и затем вызовите метод, который вы хотите протестировать.
  2. Тестирование функции - в этом режиме тестирования мы будем вызывать маршрут и проверять,правильно выбран метод, и он работает, как нужно.

Спасибо !!

1 Ответ

6 голосов
/ 19 марта 2019

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

 public function testBasicTest()
 {
    $object = (new UsersController());
    $response = $object->methodName();
    $this->assertTrue($response);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...