Пробное Middle C# собеседование (мок-интервью). Часть 2
Фрагмент мок-интервью по C#/.NET: LINQ, IQueryable/IEnumerable и стратегия тестирования. После ответов кандидата интервьюер разбирает неточности в определениях unit-, integration-, component-, contract- и нагрузочных тестов.
DotNet Interview Preparation
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 4,3 тыс.
- Лайки на YouTube: 191
Таймлайн
Коротко о видео
Вторая теоретическая часть пробного Middle C# мок-интервью посвящена LINQ, различиям IQueryable и IEnumerable, а затем видам тестирования. Кандидат отвечает на вопросы, а интервьюер уточняет понятия: unit-тест изолирует один юнит, интеграционный тест проверяет взаимодействие нескольких частей, а полный запуск системы относится к end-to-end-проверке. В конце обсуждаются component-, contract- и нагрузочные тесты, определение пропускной способности и запас до пиковых нагрузок.
Затронутые темы
Что взять на заметку
- Отложенное выполнение LINQ обсуждается как выполнение цепочки при материализации результата, например при получении конкретной коллекции.
- IQueryable отличается тем, что провайдер может преобразовать и оптимизировать выражение запроса до материализации; IEnumerable используется для последовательной обработки уже доступных данных.
- Цепочки LINQ-методов образуют fluent interface: типизированный IEnumerable возвращается из операций и позволяет последовательно вызывать новые методы.
- Unit-тест должен изолировать один юнит, например класс, с помощью mocks и stubs; не требуется механически писать отдельный тест на каждый if, если проверки относятся к одной логике.
- Параметризованные тесты позволяют прогнать один тест на наборах входных данных: отрицательном значении, нуле и других граничных случаях.
- Интеграционные тесты могут проверять несколько классов и при необходимости базу данных или другие зависимости; их можно запускать в CI/CD, а не только локально. Полное поднятие приложения интервьюер относит к end-to-end-тесту.
- Для микросервисов упомянуты эмуляция внешних сервисов и contract-тесты, а нагрузочные тесты нужны, чтобы измерить пропускную способность и установить безопасные пороги до пикового трафика.