Комментарий
Comment — тип данных отвечающий за комментарии в тестах.
Данный тип данных используется для добавления информации о тесте, объяснении того, как именно работает сложный тест. А быть может, ты хочешь предоставить детали, которые могут быть полезны при диагностике проблемы, специфичные для этого теста.
note
Комментарий необходим для указания полезной информацией о тесте или типе данных.
Отличие от обычного комментария
Да, предполагаю что ты и так знаешь, как добавить комментарий к исходному коду в Swift. В отличии от обычного комментария, комментарий добавленный к тесту укажет на проблему быстрее. Причина очень проста — если тест не пройдет проверку, ты увидишь комментарий связанный с этим тестом. Это особенно полезно при использовании инструментов CI/CD или в других логах.
Комментарий добавляется выше атрибутов @Test или @Suite.
Использование
Чтобы добавить комментарий, используй 2 слеша //
перед атрибутом @Test или @Suite:
// Проверям предложения на рынке и ищем только 2-комнатную квартиру
@Test
func availableApartment() async {
let roomForOne = ApartmentSearcher(criteria: [.single, .studio])
let result = await roomForOne.result()
#expect(result.contains { $0.type == .twoBedroom })
}
❌ Test availableApartment() failed after 0.001 seconds with 1 issue.
↳ // Проверям апартаменты и ищем только 2-комнатную квартиру
Одиночный комментарий // Проверям апартаменты и ищем только 2-комнатную квартиру
добавлен к тесту. Тест не прошел проверку, поэтому помимо названия теста в консоли, ты видишь дополнительную информацию о нем.
Еще одной особенностью является применение комментария к типам данных.
Без атрибута @Suite
блочный комментарий не учитывается в выводе консоли:
/*
Максимально оптимизированный поиск по рынкам РФ и РБ.
Без дополнительных фильтров.
*/
struct FastApartmentSearcher {
// ...
}
❌ Suite FastApartmentSearcher failed after 0.001 seconds with 1 issue.
Комментарий выше не был напечатан, но если ты применишь атрибут @Suite
, то вывод станет доступен:
/*
Максимально оптимизированный поиск по рынкам РФ и РБ.
Без дополнительных фильтров.
*/
@Suite
struct FastApartmentSearcher {
// ...
}
// ❌ Suite FastApartmentSearcher failed after 0.001 seconds with 1 issue.
/*
↳ Максимально оптимизированный поиск по рынкам РФ и РБ.
Без дополнительных фильтров.
*/
Помимо этого атрибуты @Test и @Suite поддерживают другие стили, кроме одиночного:
Синтаксис | Описание |
---|---|
// ... | Комментарий в одну строку |
/// ... | Документация в одну строку |
/* ... */ | Комментарий в блоке |
/** ... */ | Документация в блоке |
Различие между комментарием и именем теста
Рассмотрим 2 примера. В первом случае зададим имя для теста:
@Test("Проверям предложения на рынке и ищем только 2-комнатную квартиру")
func availableApartment() async {
// ...
}
❌ Test "Проверям предложения на рынке и ищем только 2-комнатную квартиру" failed after 0.001 seconds with 1 issue.
Во втором случае, имя теста не задано, но указан комментарий:
// Проверям предложения на рынке и ищем только 2-комнатную квартиру
@Test
func availableApartment() async {
// ...
}
❌ Test availableApartment() failed after 0.001 seconds with 1 issue
↳ Проверям апартаменты и ищем только 2-комнатную квартиру
Как ты видишь, в консоли или твоем CI/CD вывод будет различаться, поскольку имя теста и комментарий служат для различных целей. Я не стал указывать третий случай: имя и комментарий вместе, поскольку разница будет и так понятна.
important
В навигационном меню тестов Xcode отображается только имя теста, а не его комментарий.