Правильное юнит-тестирование

Рейтинг: 0Ответов: 0Опубликовано: 04.09.2014

Здравствуйте! Подскажите, пожалуйста, как правильно будет организовать тесты методов в контроллере?

Есть контроллер, у которого есть метод, отвечающий за регистрацию нового пользователя. С фронта приходят данные, и они предварительно обрабатываются, на правильность емаила, длину пароля и т.д. Так вот, для каждого кейса создавать свой тест или все кейсы проходить в одном тесте?

class RegisterController{
   public regActionAjax(){
      $email = $this->getParam('email');
      $pass = $this->getParam('pass');

     if(empty($email)){
        $code = 1;
        $this->jsonError($code, 'Empty email');
     }

     if(empty($pass)){
        $code = 2;
        $this->jsonError($code, 'Empty password');
     }

     ...
   }
}

Вариант теста 1:

class RegisterControllerTest{
     public testRegAction(){
        /**
         * RegisterController_regAction($email, $pass)
         * Метод имитации отправки POST запроса, 
         * написал так, что бы лишней лапши не было. 
         */

       // Отправляем пустой email
        $response = $this->RegisterController_regAction('', '123'); 
        $this->asserEqual(1, $response->code);

        // Отправляем пустой пароль
        $response = $this->RegisterController_regAction('example@gmail.com', '');
        $this->asserEqual(2, $response->code);

        ...
     }
}

Вариант теста 2:

class RegisterControllerTest{
         public testEmptyEmail(){
           // Отправляем пустой email
            $response = $this->RegisterController_regAction('', '123'); 
            $this->asserEqual(1, $response->code);
         }

         public testEmptyPass(){
           // Отправляем пустой пароль
            $response = $this->RegisterController_regAction('example@gmail.com', '');
            $this->asserEqual(2, $response->code);
         }

         ...
    }

Ответы

Ответов пока нет.