JAVA TESTING¶
Вопросы¶
- Чем стаб (stub) отличается от мока (mock)?
- Что такое unit testing?
- Что такое Фикстуры?
- Какие есть аннотации фикстур?
- Для чего нужна Аннотация @Ignore?
- Что такое интеграционные тесты?
Ответы¶
Чем стаб (stub) отличается от мока (mock)?¶
Stub - объекты, которые предоставляют заранее заготовленные ответы на вызовы во время выполнения теста и обычно не отвечающие ни на какие другие вызовы, которые не требуются в тесте. Также могут запоминать какую-то дополнительную информацию о количестве вызовов, параметрах и возвращать их потом тесту для проверки. Используется для "затычки" сервисов, методов, классов и т.д. Абсолютно все равно что они вернут при работе или сколько раз произойдет вызов.
Mock - объекты, которые заменяют реальный объект в условиях теста и позволяют проверять вызовы своих членов как часть системы или unit-теста. Содержат заранее запрограммированные ожидания вызовов, которые они ожидают получить. Применяются в основном для т.н. interaction (behavioral) testing. Используется для подмены результатов вызова функций в юнит тестах (важен результат), для учета количества вызовов функций и просто ожидания их вызовов. Используется в области Assert юнит теста.
Что такое unit testing?¶
Модульное тестирование или unit testing - процесс проверки на корректность\ функционирования отдельных частей исходного кода программы путем запуска тестов в искусственной среде.
Что такое Фикстуры?¶
Фикстура (Fixture) - состояние среды тестирования, которое требуется для успешного выполнения тестового метода. Может быть представлено набором каких-либо объектов, состоянием базы данных, наличием определенных файлов, соединений и проч.
Какие есть аннотации фикстур?¶
Предусмотрено четыре аннотации фикстур - две для фикстур уровня класса и две для фикстур уровня метода.
- @BeforeClass - запускается только один раз при запуске теста.
- @Before - запускается перед каждым тестовым методом.
- @After - запускается после каждого метода.
- @AfterClass - запускается после того, как отработали все тестовые методы.
Для чего нужна Аннотация @Ignore?¶
Аннотация @Ignore заставляет инфраструктуру тестирования проигнорировать данный тестовый метод. Аннотация предусматривает наличие комментария о причине игнорирования теста, полезного при следующем к нему обращении.
Что такое интеграционные тесты?¶
Интеграционные тесты - это тесты, проверяющие работоспособность двух или более модулей системы, но в совокупности - то есть нескольких объектов как единого блока.
Обновлено Александр Александров больше 5 лет назад · 1 изменени(я, ий)
Go to top