TDD — Разработка через тестирования. Урок 3. Тестирование с использованием Mock объектов

Автор Filip Sergienko
TDD — Разработка через тестирования. Урок 3. Тестирование с использованием Mock объектов

Здравствуйте мы начинаем третий урок по курсу среди.

Сегодня мы рассмотрим. Что такое. МОК объекты и как пользоваться излишне фреймворками модульные тесты можно условно разделить на 2 — это тесты состояние и тесты взаимодействие теста состояния базируется на использовании стала объектов эти тесты проверяют, что вызываемый метод объекта коррекция бровей при этом состояние системного объекта после вызова метода также.

Существует ли тесты взаимодействия которые базируются на использовании новых объектов эти тесты проверяет что.

Тестируем объект производит манипуляции с другими объектами. Теперь давайте дадим определение мог объекта объекта мы будем называть управляемую замена существующих зависимости в системе которые заменяют реальные объекты систем проверить вызовы с хреном. Тестируем класса и конечно же нужно четко разделять mock объекты и сам объект между ними существенная разница ног объекты могут быть причиной не прохождения теста оставлю объекты не могут быть давайте перейдем на следующий слайд и посмотрим на разница между который использует mock объект и. Ставрополе на этом слайде слева мы видим тест состояния которые используют объект. Справа видим тест за действия которые используют. Могут ли при использовании состав объекта тест направлены на проверку членов тестировала класса — это может быть допустим просто проверка обозначаемого в таком случае с тест будет проверять правильность работы логики методы объекта просто управляемой замена неуправляемая зависимости в системе если мы рассмотрим тест который использует наука объектом. Увидим, что тест направление на проверку членов тестер класса. А на проверку состояния объекта после взаимодействия с тестероном класса в первом случае тест может быть провален не поставлю объектом, а непосредственно класс во втором случае наоборот тест может быть провален основным объектом занятости разным классам тут мы видим основное различие между объектом и субъектом и между тестом состояния и взаимодействием на следующем слайде мы рассмотрим конкретный пример использования объекта в этом примере мы дополним hosts файл с новым функционалом методом анализ который принимает имя какое-то проверяет если у этого файла разрешение не тексте значит использование Service Method analysis записывает журнал ошибок сообщения station.ru. То есть ошибка разрешение файла при этом объект файл менеджер использует внешнюю зависимость сервис которую нужно заменить некем по основным объектом — это объект или же в. Ставрополе Давайте решим каким объектам нам нужно его заменить мы понимаем, что для тестирования этого метода нужно использовать тест взаимодействие. Как проверить, что метод анализ правильно вызывает метод объекта сервис поэтому для замены сервиса мы будем использовать конечно же мог. Объект — это объект мы видим справа на нашем слайде — это некий Class mock Service который одно поле типа сфинксам lasterror также содержит метод Log Error который должен быть вызван методом анализ объекта в файл менеджер то есть при вызове метода Log errors Log Service в поле будет сохраняться тот параметр который метод анализ будет метод в качестве параметра при этом мы говорили, что те тесты которые используют mock объекты они должны быть направлены на проверку состояния именам объектам первом примере мы попробуем протестировать метод анализ объектов файл менеджер объект метод анализ принимает имя файла проверять если длина меньше 8 если разрешение у файла не текста пишется вызывается пеноблока на объекте сервис и записывается сообщение в журнал ошибок при этом. Витя, что наш класс использовать внешнюю зависимость — это объект и lockservice ты — это внедрение зависимостей производится через конструктор. Я в данном примере мы будем с вами использовать mock объект для того чтобы проверить, что металась действительно вызывает. ЛОР объекта для этого. Мы создали Class mock Service которые рисуют профессии lockservice классом есть поле открыто полете постриг с именем lasterror также есть метод Log Error — это реализация. НТВ лабсервис этот метод принимает строковое значение этой сообщение об ошибке и сохраняет — это сообщение в переменную в поле lasterror классом o'clock сервис. Не давайте перейдем к тесту и посмотрим. Таким образом мы будем проверять, что объект файл менеджер действительно взаимодействует с объектом mock Service на 12 строке мы создаем экземпляра класса mock Service 14 создаем экземпляра класса файл менеджер внедряем зависимость mock Service File Manager 16 строка мы вызываем методы объекта менеджеры переезда имя файла файл. лох и у нас должно быть записано 3 ошибки в сервис и последняя из них будет говорить о том, что разрешение файла не соответствует всем требованиям которые установлены 18. Вызови метод aicall и проверим, что объект mock Service имеет состояние File extension Error Log — это будет говорить о том, что действительно объект файл менеджер и смог сервис при взаимодействии. Давайте запустим наш test file manager Test 1 у нас успешно завершила во втором примере мы будем использовать одновременно мог объект из объекта мы дополним Method on object File Manager. Новым Новым функционалом если.

0 комментариев
0

Читайте также