Модульное тестирование с JUnit

Содержание

Слайд 2

JUnit Библиотека для модульного тестирования поставляется в виде jar-файла в составе

JUnit

Библиотека для модульного тестирования
поставляется в виде jar-файла
в составе большинства IDE для

Java
JUnit запускает пакеты тестов и выдаёт отчёт о результатах
Для каждого теста выполняет действия:
setUp() – настройка окружения
запуск тестового метода
тестовый метод проверяет какой-то аспект поведения: вызывает тестируемый метод класса и проверяет утверждения относительно результатов
tearDown() – уничтожение окружения
Слайд 3

Проект с тестами Создаём новый проект “Java Project” / “Android Test

Проект с тестами

Создаём новый проект
“Java Project” / “Android Test Project”
Определяем зависимость

от тестируемого проекта
Создаём модули с тестами
Best practices: параллельная структура пакетов (дублирует структуру тестируемого проекта)
Слайд 4

Проект с тестами: Android

Проект с тестами: Android

Слайд 5

Проект с тестами: Android

Проект с тестами: Android

Слайд 6

Проект с тестами: Java Project

Проект с тестами: Java Project

Слайд 7

Модули с тестами Классы, наследуемые от TestCase: setUp() / tearDown() public

Модули с тестами

Классы, наследуемые от TestCase:
setUp() / tearDown()
public testXXX() –

методы с тестами
наборы asserts – проверочных утверждений
TestSuite – набор TestCases:
static suite() – фабричный метод для набора тестов
включает группу TestCase-ов и отдельных методов testXXX()
Опционально – метод main() для запуска пакета тестов
Слайд 8

Создание нового тестового модуля

Создание нового тестового модуля

Слайд 9

Создание нового тестового модуля

Создание нового тестового модуля

Слайд 10

Виды проверочных утверждений assertXXX: assertTrue(boolean test) assertFalse(boolean test) assertEquals(expected, actual) assertSame(Object

Виды проверочных утверждений

assertXXX:
assertTrue(boolean test)
assertFalse(boolean test)
assertEquals(expected, actual)
assertSame(Object expected, Object actual)
assertNotSame(Object expected, Object actual)
assertNull(Object object)
assertNotNull(Object object)
fail()
провал теста(генерирует AssertionFailedError)
Все

вышеуказанные методы в варианте с текстовым сообщением
напр., assertTrue(String message, boolean test)
Слайд 11

Тестовые методы “Run As…->JUnit Test” формируется отчёт «красный» - есть не

Тестовые методы

“Run As…->JUnit Test”
формируется отчёт
«красный» - есть не прошедшие тесты
«зелёный» -

все тесты пройдены
Слайд 12

Fixtures Позволяют снизить дублирование кода Если для набора тестов нужны общие

Fixtures

Позволяют снизить дублирование кода
Если для набора тестов нужны общие «предустановки», можно

поместить их в метод setUp
в предыдущем примере, можно было бы сделать DemoBot полем класса DemoBotTest и инициализировать его в setUp()
чтобы к каждому тесту был создан «свежий» объект для тестирования
Слайд 13

Тестирование GUI в Android средствами JUnit + android.test android.test – фреймворк

Тестирование GUI в Android средствами JUnit + android.test

android.test – фреймворк для

написания специальных Android-тестов
GUI-тесты Android-компонент
большой набор assert-методов (см. документацию)
средства для изолированного тестирования GUI-классов (mock-и Android-компонент)
Можно автоматизировать действия над интерфейсом и проверять:
видны ли элементы GUI, какие значения они содержат, как расположены и т.п.
Слайд 14

android.test: новый тест для Activity

android.test: новый тест для Activity

Слайд 15

android.test: запуск тестов “Run As” -> “Android JUnit Test”

android.test: запуск тестов

“Run As” -> “Android JUnit Test”