Чаще всего в статьях о юнит-тестировании упоминаются такие столпы как JUnit, TestNG, Mockito. О них все слышали, много пишут разных статей и обзоров. Но есть и менее известные библиотечки, которое очень удобны при написании юнит (и не только) тестов. Одна из них — Fest Assertions.
Её главным предназначением является помощь в написании ясных и человеко-читаемых утверждений (assertions) в тестах. Для того, чтобы вам было быстрее и удобнее их писать она использует т.н. fluent interface
Если вы используете Maven, то просто добавьте её в зависимости:
Теперь вы можете использовать её в своих тестах. Например:
На домашней странице приведены ещё некоторые примеры использования assertThat() для коллекций, исключений и других объектов (нужно ли говорить, что вы можете написать также и свои?).
В чем удобства этой библиотеки?
Во-первых, overridingErrorMessage() как-то слишком длинно. Во-вторых, его нужно обязательно вставить между объектом для сравнения и самим условием, из-за чего они "разрываются" и теряется та самая читабельность.
В остальном же библиотека мне показалась очень интересной и удобной.
Её главным предназначением является помощь в написании ясных и человеко-читаемых утверждений (assertions) в тестах. Для того, чтобы вам было быстрее и удобнее их писать она использует т.н. fluent interface
Если вы используете Maven, то просто добавьте её в зависимости:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<dependency> | |
<groupId>org.easytesting</groupId> | |
<artifactId>fest-assert</artifactId> | |
<version>1.4</version> | |
<scope>test</scope> | |
</dependency> |
Теперь вы можете использовать её в своих тестах. Например:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import static org.fest.assertions.Assertions.assertThat; | |
@Test | |
public void booleanAssertions() { | |
assertThat(true).isTrue(); | |
assertThat(false).isFalse(); | |
} | |
@Test | |
public void objectsAssertions() { | |
assertThat(null).isNull(); | |
assertThat(new Object()).isNotNull(); | |
} | |
@Test | |
public void equalsAssertions() { | |
final String actualValue = "test"; | |
final String expectedValue = "test"; | |
assertThat(actualValue).isEqualTo(expectedValue); | |
} |
На домашней странице приведены ещё некоторые примеры использования assertThat() для коллекций, исключений и других объектов (нужно ли говорить, что вы можете написать также и свои?).
В чем удобства этой библиотеки?
- всего один import
- авто-дополнение методов в IDE
- более читаемый код
- независимость от тестового фреймворка (например, assertEquals() в JUnit и в TestNG имеет различный порядок аргументов. Если вы будете использовать fest, то в случае необходимости вам будет проще мигрировать на другой тестовый фреймворк)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
assertThat(page.userBarExists()) | |
.overridingErrorMessage("user bar should exists") | |
.isTrue(); |
Во-первых, overridingErrorMessage() как-то слишком длинно. Во-вторых, его нужно обязательно вставить между объектом для сравнения и самим условием, из-за чего они "разрываются" и теряется та самая читабельность.
В остальном же библиотека мне показалась очень интересной и удобной.
Комментариев нет:
Отправить комментарий