Без рефлексии тесты можно регистрировать явно как имена и делегаты. Runner вызывает их, ожидает завершения, фиксирует исключения и формирует отчёт.
Если бы вы разрабатывали свой тестовый фреймворк, как бы вы организовали его без использования рефлексии?
Без рефлексии тесты можно регистрировать явно как имена и делегаты. Runner вызывает их, ожидает завершения, фиксирует исключения и формирует отчёт.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Без рефлексии тесты можно регистрировать явно как имена и делегаты. Runner вызывает их, ожидает завершения, фиксирует исключения и формирует отчёт.
Например, реестр хранит пары string name и Func<Task> test. Параметризованные случаи превращаются в отдельные регистрации с замкнутыми входными данными; синхронный тест можно обернуть в делегат, возвращающий Task.CompletedTask.
Нужны setup/teardown через try/finally, изоляция кейсов и понятные результаты. Source generator может создавать реестр на этапе компиляции вместо runtime-discovery. Таймаут ожидания сам по себе не останавливает зависший код; для жёсткой изоляции нужен отдельный процесс.