2016-06-20 4 views
2

Я новичок в тестировании единства и затрудняюсь определить правильные сценарии для тестирования.Тестирование единиц измерения - Определение тестовых сценариев

В основном я следующие функции в моем веб-сайте (с помощью Laravel 5):

Просмотр страницы

  1. Получить значения из БД с помощью модели

  2. Пасс эти данные в HTML шаблон с помощью контроллера

  3. Распечатать данные в HTML шаблоне для отображения

// вид

public function getStudents(){ 

$students = Student::all(); // model: get all the students from Database 
$data['students'] = $students; 
return view('views/students', $data);// Pass data into the view 

} 

Редактировать/Создать страницы

  1. Получить входные данные из файла вида

  2. Validate

  3. Сохранить/Обновление БД и печать сообщение о успехе.

    функция editStudent общественности ($ ID) {

    //grab input data 
    
    //validate 
    
    //save in DB 
    

    }

Над сценарием выглядит довольно прямо вперед. Пока я получаю записи базы данных Я получаю результат успеха. Недействительные входы могут быть отфильтрованы с помощью проверки (стороны клиент/сервер). Нужно ли нам писать модульные тесты для вышеуказанных функций? Каковы тестовые сценарии?

Можете ли вы дать мне несколько практических примеров для тестирования?

Этот сайт содержит 80% операций CRUD. Помимо этого у меня есть:

  1. Некоторые функции для фильтрации дат. ex: дата ввода1, дата2 - результаты DB будут входить в эти две даты.

  2. Некоторые глобальные функции. ex: формат даты, валюта. Функции ACL.

ответ

1

Хорошо. По-моему, существует один сценарий, который вам нужно проверить, а что, если извлечения из БД не удастся? Вам нужно поймать исключение в этом случае и показать правильное сообщение об ошибке. Затем вам нужно проверить, работает ли поиск, как ожидалось, так что два сценария:

1st-Test при сбое из базы данных.
2nd - Тест при извлечении из базы данных завершается успешно, чтобы данные отображались в представлении.Вы можете использовать это для тестирования второго сценария:

$this->visit('/') 
      ->see('Laravel'); 

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

1

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

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

Смежные вопросы