Java для автоматизаторов
  • Introduction
  • Java. Введение
    • Java как язык и платформа
    • Установка и настройка
  • Язык Java. Основы
    • Hello World
    • Переменные
    • Типы данных
    • Строки
    • Циклы "while" / "do ... while"
    • Циклы "for"
    • Условный оператор "if / if ... else"
    • Условный оператор "switch"
    • Массивы
    • Задания к главе
  • ООП в Java
    • Классы и объекты
    • Методы
    • Свойства
    • Параметры методов
    • Ключевое слово this
    • Конструктор
    • Модификаторы static и final
    • StringBuffer
    • Метод toString()
    • Метод equals()
    • Наследование
    • Пакеты
    • Интерфейсы
    • Модификаторы Public, Private и Protected
    • Полиморфизм
    • Инкапсуляция
    • Использование обобщений
    • Generics and Wildcards
    • Анонимные классы
    • Исключения
    • Множественные исключения
    • Абстрактные классы
    • Вложенные классы
    • Тип Enum
    • Задания к главе
  • Коллекции
    • ArrayList
    • Linked Lists
    • HashMap
    • Sets (Множества)
    • Sorted Maps
    • Задание порядка в множестве ( natural ordering )
    • Очередь (Queue)
    • Использование итераторов
    • Создание объектов, реализующих интерфейс Iterable
    • Задания к главе
  • Стиль написания кода
    • Структура файла
    • Файлы-исходники
    • Открывающие комментарии
    • Сведения о пакете и импорте
    • Объявление классов и интерфейсов
    • Длина строки
    • Переносы строк
    • Переносы в объявлении методов
    • Переносы в операторе if
    • Переносы в тернарных операциях
    • Виды комментариев
    • Блочные комментарии
    • Однострочные комментарии
    • Комментарии в конце строки
    • Объявления (Декларации)
    • Операторы
    • Пропуски
    • Конвенция именования
    • Задания к главе
  • Работа с файлами
    • Работа с текстовыми файлами
    • Работа с XML файлами
    • Работа с JSON файлами
    • Property-файлы
    • Задания к главе
  • Log4j - система логирования сообщений в Java
    • Начало работы
    • Конфигурационные файлы
    • Стандартные аппендеры
    • Задания к главе
  • Юнит тестирование
    • JUnit vs TestNG. Основные аннотации
    • JUnit vs TestNG. Примеры тестов
      • Exception тесты
      • Ignore тесты
      • Тест с таймаутом
      • Тест сьюты
      • Параметризованные тесты
      • Зависимые тесты
      • Многопоточность
    • Asserts
    • Использование "заглушек" (Mocks)
  • Build инструменты
    • Build инструменты
    • Примеры конфигураций
  • Системы контроля версий. Git
    • Системы контроля версий. Git
    • Git. Установка
    • Git. Основы
    • Git. Основные команды
      • Настройка
      • Работа с репозиторием
      • Работа с удаленным сервером
      • Работа с ветками
Powered by GitBook
On this page
  1. Юнит тестирование

Asserts

Одна из самых распространенных ошибок начинающих автоматизаторов - отсутствие в тесте проверок. При этом необходимо учитывать, что само по себе действие не заменяет проверку. При ручном тестировании часть шагов выполняется с использованием средств ввода (действия, выполняемые с помощью клавиатуры и мыши), а проверки при этом выполняются без такового. Например:

Действие

используемые инструменты

Запустить приложение

мышь + клавиатура

Перейти в личный кабинет

мышь

Убедиться, что отобразились необходимые поля

зрение

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

А значит для полноценного автоматизированного тестирования, чтобы оно не превратилось в такой-же бессмысленный набор действий, нам необходимо автоматизировать проверки и по их результату определять, успешно выполнен тест, или он "завален".

На помощь в этом нам приходят проверки, реализованные в рассмотренных юнит-тестовых фреймворках: TestNG и JUnit.

Основные проверки:

JUnit

TestNG

Что проверяется

assertTrue(boolean)

assertTrue(boolean)

Проверяет, что передаваемое выражение истинно (возвращает значение true)

assertFalse(boolean)

assertFalse(boolean)

Проверяет, что передаваемое выражение ложно (возвращает значение false)

assertEquals(expected, actual)

assertEquals(actual, expected)

Проверяет, что передаваемые параметры равны

assertArrayEquals(expecteds, actuals)

assertEquals(actual[], expected[])

Проверяет, что передаваемые массивы равны

-

assertEqualsNoOrder(actual[], expected[])

Проверяет, что передаваемые массивы равны, без учета порядка элементов

assertNotSame(expected, actual)

assertNotEquals(actual, expected)

Проверяет, что передаваемые объекты не равны (JUnit - по ссылке, TestNG - по значению)

fail()

fail()

"заваливает" тест

Все эти методы, после проверки, в случае неудачи бросают исключение, которое используется фреймворком, чтобы определить тест, как упавший. Именно основываясь на этих исключениях тесты будут впоследствии помечаться в отчетах как неуспешные.

PreviousМногопоточностьNextИспользование "заглушек" (Mocks)

Last updated 6 years ago