Rust

Testing

Модульні тести, інтеграційні тести, doc тести, асерції, should_panic, бенчмарки, організація тестів

18 питань зі співбесід·
Mid-Level
1

Який атрибут позначає функцію як модульний тест у Rust?

Відповідь

Атрибут #[test] повідомляє компілятору Rust, що анотована функція є модульним тестом. Під час виконання cargo test усі функції, позначені цим атрибутом, автоматично виявляються та виконуються. Тести компілюються лише з профілем test і не включаються до продакшн-бінарника.

2

Яка команда Cargo запускає всі тести в проєкті Rust?

Відповідь

Команда cargo test компілює проєкт з увімкненими тестами та запускає всі модульні, інтеграційні та документаційні тести. Вона автоматично виявляє функції, позначені #[test], тести в каталозі tests/ та приклади коду в документації. Опції дозволяють фільтрувати тести за назвою або модулем.

3

Який макрос слід використовувати, щоб перевірити, що два значення рівні в тесті?

Відповідь

Макрос assert_eq! порівнює два значення та провалює тест, якщо вони не рівні. Завдяки трейту Debug він автоматично відображає порівнювані значення в разі невдачі, що полегшує налагодження. На відміну від assert!, він надає більш інформативне повідомлення про помилку, що показує очікуване та фактичне значення.

4

Де слід розміщувати інтеграційні тести в проєкті Rust?

5

Який атрибут слід використовувати, щоб перевірити, що функція спричиняє panic?

+15 питань зі співбесід

Опануй Rust для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно