Иногда попадаются вот такие «информативные» описания при падении теста:
expected [true] but found [false]
Меня вгоняют в печаль такие падения) Из этого описания мало что понятно слёту 😞
Такое можно встретить, если не было добавлено описание к проверке. Например, в AssertJ:
assertThat(setting).is(true);
Для улучшения контекста ошибки можно добавить пояснения, например, через as():
assertThat(setting).as("Настройка должна быть включена для расширенной версии").is(true);Рассмотрим примеры на других языках и библиотеках:
В 🧬 Selenide есть возможность уточнять причину падения с помощью because():
saveButton.shouldBe(visible.because("Кнопка сохранения должна снова появиться")✅ XCTest:
XCTAssertTrue(condition, "Условие должно быть true, потому что...")
И в пакете ✅ Swift Testing:
#expect(false, "Какое-то кастомное сообщение")
💡 TestNG и 5️⃣ JUnit:
assertTrue(condition, "Условие должно быть true, потому что...")
В Kotlin в ✅ Kotest используется «clues» (подсказки), например, withClue:
withClue("Name should be present") {
user.name shouldNotBe null
}И asClue:
{ "Name should be present (user_id=${user.id})" }.asClue {
user.name shouldNotBe null
}📊 pytest:
assert price > 0, "Price should be greater than zero"
🎭 Playwright:
await expect(page.getByText('Name'), 'should be logged in').toBeVisible();⭐️Нужно стараться всегда указывать описание, чтобы лучше понимать причину падения, это помогает не только тебе, но и другим коллегам 👌
И, конечно, не используйте комментарии для описания, их никто не увидит при падении 😁
#автотесты
