Project

General

Profile

Actions

JAVA TESTING

Вопросы

  1. Чем стаб (stub) отличается от мока (mock)?
  2. Что такое unit testing?
  3. Что такое Фикстуры?
  4. Какие есть аннотации фикстур?
  5. Для чего нужна Аннотация @Ignore?
  6. Что такое интеграционные тесты?

Ответы

Чем стаб (stub) отличается от мока (mock)?

Stub - объекты, которые предоставляют заранее заготовленные ответы на вызовы во время выполнения теста и обычно не отвечающие ни на какие другие вызовы, которые не требуются в тесте. Также могут запоминать какую-то дополнительную информацию о количестве вызовов, параметрах и возвращать их потом тесту для проверки. Используется для "затычки" сервисов, методов, классов и т.д. Абсолютно все равно что они вернут при работе или сколько раз произойдет вызов.

Mock - объекты, которые заменяют реальный объект в условиях теста и позволяют проверять вызовы своих членов как часть системы или unit-теста. Содержат заранее запрограммированные ожидания вызовов, которые они ожидают получить. Применяются в основном для т.н. interaction (behavioral) testing. Используется для подмены результатов вызова функций в юнит тестах (важен результат), для учета количества вызовов функций и просто ожидания их вызовов. Используется в области Assert юнит теста.

Что такое unit testing?

Модульное тестирование или unit testing - процесс проверки на корректность\ функционирования отдельных частей исходного кода программы путем запуска тестов в искусственной среде.

Что такое Фикстуры?

Фикстура (Fixture) - состояние среды тестирования, которое требуется для успешного выполнения тестового метода. Может быть представлено набором каких-либо объектов, состоянием базы данных, наличием определенных файлов, соединений и проч.

Какие есть аннотации фикстур?

Предусмотрено четыре аннотации фикстур - две для фикстур уровня класса и две для фикстур уровня метода.

  • @BeforeClass - запускается только один раз при запуске теста.
  • @Before - запускается перед каждым тестовым методом.
  • @After - запускается после каждого метода.
  • @AfterClass - запускается после того, как отработали все тестовые методы.

Для чего нужна Аннотация @Ignore?

Аннотация @Ignore заставляет инфраструктуру тестирования проигнорировать данный тестовый метод. Аннотация предусматривает наличие комментария о причине игнорирования теста, полезного при следующем к нему обращении.

Что такое интеграционные тесты?

Интеграционные тесты - это тесты, проверяющие работоспособность двух или более модулей системы, но в совокупности - то есть нескольких объектов как единого блока.

Updated by Александр Александров over 1 year ago · 1 revisions

Go to top