Наиболее выразительная и запоминающаяся часть теста – качественно составленное утверждение (assertion).
[highlight dark=”no”]Именно оно верифицирует поведение ПО, которого от него ожидает сначала тестировщик, а потом и клиент.[/highlight]
Качественное утверждение должно с первой своей строки демонстрировать, что делает данный тест.
[highlight dark=”no”]Тесты по автоматизации никогда не должны содержать циклы, внутри которых может быть спрятано утверждение.[/highlight]
Сейчас есть множество библиотек, которые их поддерживают, составленные на популярных языках программирования.
Казалось, а зачем знать много библиотек, если можно использовать одну и составлять автоматизированные проверки по одному заданному сценарию?
Ответ прост: утверждения, которые легко читаются – это наиболее простой путь к созданию утверждений в более понятной и доступной форме.
Есть сразу 2 подхода при написании утверждений. Первый: применение ключевого слова «assert», второй: применение таких слов, как «should» и «expert».
Если первый «берет» свое начало из классической манеры написания модульных тестов и фиксирует внимание на проверке и верификации, то второй (BDD) – в полной мере ориентирован на фразы «should» и «expert», описывающие именно то поведение, которое тестировщик ожидает от ПО.
Ну а теперь рассмотрим непосредственно структуру популярных библиотек, которые могут быть полезными в повседневной деятельности тестировщика-автоматизатора.
Hamcrest
Наверное, наиболее популярная библиотека из данной сферы автоматизации тестирования программного обеспечения.
Базовый метод, который в ней используется, именуется assertThat().
Очень радует, что данная библиотека может похвастаться разнообразным ассортиментом matcher-ов, таких как:
При желании, с более подробной информацией касательно этой библиотеки можно ознакомиться по ссылке https://code.google.com/p/hamcrest/wiki/Tutorial
FestAsserts
https://joel-costigliola.github.io/assertj/assertj-core-migrating-from-fest.html
Это востребованная библиотека Java, которая предоставляет персональный доступ для написания утверждений.
Базовая цель – повышение читабельности тестового кода и упрощение процесса проведения проверок.
К слову, данная библиотека очень схожа с первой, так как тоже предоставляет на выбор большой перечень matcher-ов.
К примеру, чтобы протестировать, что список Х содержит определенные элементы.
AssertJ
https://joel-costigliola.github.io/assertj/
Классическое утветвление от ранее описанной библиотеки Fest Asserts, который предоставляет широкий набор утверждений, сообщенийоб ошибках, с возможностью улучшения читабельности тестового программного кода.
Более детально с библиотекой можно ознакомиться по ссылке http://joel-costigliola.github.io/assertj/
Google Truth
Отличается хорошей читабельностью и понятностью, по сравнению с тремя другими инструментами.
Заключение
Итак, Hamcrest and FestAssert отыгрывают важную роль при подходе Java-based BDD, но Hamcrest отличается более лучшей гибкостью и расширяемостью, но в то же время, преимущество FestAssert в простом синтаксисе и простоте повседневного использования.
Касательно AssertJ, эта библиотека является упрощенной версией FestAssert, которая отличается массой полезных функциональностей.
Но в целом, все приведенные библиотеки являются хорошим инструментарием при создании простых и действенных модульных тестов во время автоматизированных проверок любого программного обеспечения.
0 Comments