
Testing
Модульні тести, інтеграційні тести, doc тести, асерції, should_panic, бенчмарки, організація тестів
1Який атрибут позначає функцію як модульний тест у Rust?
Який атрибут позначає функцію як модульний тест у Rust?
Відповідь
Атрибут #[test] повідомляє компілятору Rust, що анотована функція є модульним тестом. Під час виконання cargo test усі функції, позначені цим атрибутом, автоматично виявляються та виконуються. Тести компілюються лише з профілем test і не включаються до продакшн-бінарника.
2Яка команда Cargo запускає всі тести в проєкті Rust?
Яка команда Cargo запускає всі тести в проєкті Rust?
Відповідь
Команда cargo test компілює проєкт з увімкненими тестами та запускає всі модульні, інтеграційні та документаційні тести. Вона автоматично виявляє функції, позначені #[test], тести в каталозі tests/ та приклади коду в документації. Опції дозволяють фільтрувати тести за назвою або модулем.
3Який макрос слід використовувати, щоб перевірити, що два значення рівні в тесті?
Який макрос слід використовувати, щоб перевірити, що два значення рівні в тесті?
Відповідь
Макрос assert_eq! порівнює два значення та провалює тест, якщо вони не рівні. Завдяки трейту Debug він автоматично відображає порівнювані значення в разі невдачі, що полегшує налагодження. На відміну від assert!, він надає більш інформативне повідомлення про помилку, що показує очікуване та фактичне значення.
Де слід розміщувати інтеграційні тести в проєкті Rust?
Який атрибут слід використовувати, щоб перевірити, що функція спричиняє panic?
+15 питань зі співбесід
Інші теми співбесід Rust
Основи Rust
Ownership & Borrowing
Structs & Enums
Обробка помилок
Колекції
Модулі та пакети
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Cargo & Ecosystem
Pattern Matching
Макроси
Serde та серіалізація
Unsafe Rust
Просунуті trait'и
Просунуті Lifetimes
Type System
Tokio & Async I/O
Оптимізація продуктивності
Memory Management
Web Frameworks
Database Integration
Патерни проєктування Rust
Опануй Rust для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно