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() | "заваливает" тест |
Все эти методы, после проверки, в случае неудачи бросают исключение, которое используется фреймворком, чтобы определить тест, как упавший. Именно основываясь на этих исключениях тесты будут впоследствии помечаться в отчетах как неуспешные.
Last updated