Junit Interview Вопросы и ответы [для начинающих и опытных]

Опубликовано: 2020-09-22

JUnit — отличное решение для разработчиков, работающих с языком программирования Java. Его можно использовать для реализации модульного тестирования, а также тестирования пользовательского интерфейса. Это одна из самых востребованных компетенций для организаций, стремящихся улучшить качество своего кода и скорость программирования. В этой статье будут обсуждаться стандартные вопросы интервью JUnit, которые помогут вам подготовиться и попасть в этот список!

15 лучших вопросов и ответов для интервью JUnit

1. Что такое JUnit?

JUnit — это фреймворк, используемый для проведения модульного тестирования кода Java. Он считается основой тестирования на стороне разработчиков на движке JVM. Таким образом, JUnit является неотъемлемой частью области программирования и разработки через тестирование.

2. Что вы понимаете под тестированием и модульным тестированием?

Тестирование — это процесс проверки того, соответствует ли приложение требованиям и реализует ли он желаемые функции. Модульное тестирование относится к оценке отдельной функциональности или модуля приложения.

3. Различайте ручное и автоматизированное тестирование.

Ручное тестирование выполняется без тестовых сценариев и требует специальных человеческих усилий на различных этапах. С другой стороны, автоматизированное тестирование можно проводить без помощи человека с использованием технологических инструментов и программ. Автоматизация тестирования дешевле и требует меньше времени, чем ручное тестирование. Кроме того, ручное тестирование менее надежно, поскольку его нельзя запрограммировать.

4. Нужно ли писать тестовый пример для каждой логики?

Тестовый пример — это код, написанный для установления логики программы. В JUnit нет необходимости писать тестовые примеры для каждой логики, а только для тех, которые можно разумно сломать.

Модульный тестовый пример будет включать набор входных данных и ожидаемый результат. Пакет org.junit содержит несколько классов и интерфейсов, которые помогут вам в модульном тестировании, таких как Assert, Test, Before, After и т. д.

5. Укажите несколько примеров инструментов, с которыми вы можете интегрировать JUnit?

JUnit — это удобный фреймворк для разработки на Java. Его можно легко расширить и интегрировать с Eclipse IDE, Apache Ant и Maven.

6. Перечислите некоторые полезные расширения JUnit и объясните их назначение.

Существует четыре основных расширения JUnit, а именно Cactus, JWebUnit, XMLUnit и MockObject. Ниже мы подробно описали их использование.

  • Cactus: это платформа для тестирования кода Java на стороне сервера, которая реализует тесты внутри контейнера. Экосистема кактусов состоит из двух компонентов, а именно Cactus Framework и Cactus Integration Modules. Фреймворк — это движок, который предоставляет API для написания тестов, а модули интеграции заботятся о внешнем интерфейсе с помощью плагинов.
  • JWebUnit: эта платформа на основе Java предоставляет унифицированный интерфейс тестирования, объединяя возможности HtmlUnit и Selenium. JWebUnit упрощает навигацию по веб-приложениям с помощью ссылок, проверки содержимого таблиц, ввода и отправки форм и других функций. В дополнение к высокоуровневому Java API он позволяет быстро создавать тесты с готовыми к использованию утверждениями.
  • XMLUnit: он предлагает единственный класс расширения, который называется XMLTestCase. XMLUnit также предоставляет вспомогательные классы, которые позволяют утверждать достоверность части XML (класс Validator), различия между двумя частями XML (Diff и DetailedDiff), результат преобразования XML (класс Transformer) и т.д.
  • MockObject: когда невозможно или нецелесообразно включать реальные объекты в модульный тест, фиктивные объекты могут оказаться благом. Вы можете смоделировать поведение сложных объектов и включить их, выполнив следующие действия:
  1. Создание экземпляров фиктивных объектов
  2. Установить состояние и ожидания
  3. Вызовите код домена, используя фиктивные объекты в качестве параметров
  4. Проверить согласованность

7. Как вы тестируете «защищенные» и «приватные» методы?

В защищенном методе тестовый класс и целевой класс объявлены в одном пакете. Однако в частном методе нет прямого способа тестирования. Либо вам нужно изменить свой метод на «защищенный», либо выполнить тестирование вручную.

8. Что происходит в JUnit, когда возвращаемый тип — «строка»?

В этой ситуации компиляция пройдет, но выполнение завершится ошибкой. Это может произойти, потому что все методы тестирования JUnit предназначены для возврата «void».

9. Определите (i) Fixture (ii) Test Suit (iii) Test Runner (iv) классы JUnit

(i) Приспособления используются в качестве основы для выполнения тестов, устанавливая воспроизводимость результатов. Тестовая оснастка содержит фиксированное состояние набора объектов. Методы включают в себя:

  • setUp(): выполняется перед вызовом теста.
  • tearDown(): запускается после тестового метода.

(ii) Test Runner: выполняет тестовые примеры.

(iii) Классы JUnit: они содержат методы, используемые при написании и тестировании JUnit.

(iv) Набор тестов — это пакет или набор тестовых примеров, которые должны выполняться вместе. Вы можете запустить пакетный тест в JUnit с аннотацией @Suite или @RunWith.

Читайте: Проект системы управления библиотекой на Java

10. Упомяните несколько часто используемых аннотаций JUnit.

Аннотации — это просто метатеги, которые вы можете добавить в свой код. Аннотация @Test помечает конкретный метод как метод тестирования. Некоторые другие полезные аннотации включают @Before, @BeforeClass, @After и @AfterClass, а также @Ignores. Чтобы реализовать тест JUnit, вам нужно знать важность этих аннотаций. Итак, давайте знакомиться с ними по очереди.

  • Тест: эта аннотация сообщает JUnit, что он может запускать общедоступный метод void в качестве тестового примера. По сути, это замена org.junit.TestCase.
  • До: если вы хотите выполнить какие-либо операторы (например, предварительные условия) перед определенным тестовым примером, вы используете метод @Before. Эта аннотация позволяет запускать аналогичные объекты перед методами тестирования.
  • Перед классом: вы можете использовать аннотацию @BeforeClass в JUnit для запуска инструкций перед всеми тестовыми примерами.
  • После: запускает некоторые операторы после каждого теста, например, для удаления временных файлов, сброса переменных и т. д.
  • После класса: аннотация @AfterClass позволяет выполнять операторы после всех тестовых случаев. Например, освобождение всех ресурсов после завершения выполнения.
  • Игнорировать: используется для игнорирования определенных операторов во время выполнения. Например, отключение тестовых случаев.

Читайте также : Вопросы на собеседовании по Java.

11. Объясните различные типы классов JUnit.

Assert, TestCase и TestResult являются одними из жизненно важных классов JUnit. Assert предоставляет методы для тестовых случаев. TestCase содержит тестовый пример, определяющий фикстуру для выполнения нескольких тестов. TestResult включает методы для сбора результатов.

12. Когда вы пишете модульный тест?

В типичном цикле разработки модульные тесты пишутся перед кодом. Эта практика позволяет разработчикам поддерживать качество своего кода.

13. Почему вам следует воздерживаться от использования System.out.printIn() для отладки?

Если вы используете System.out.printIn() для отладки своего кода, это принесет пользу в долгосрочной перспективе. Каждый раз, когда программа запускается, это приводит к ручному сканированию всего вывода, чтобы убедиться, что код работает правильно. Таким образом, для кодирования методов JUnit и выполнения тестирования файлов классов потребуется относительно меньше времени.

14. Куда девается тестовый мусор в JUnit?

Выполняющий тест хранит ссылки на время теста. В случае расширенного теста с большим количеством тестовых экземпляров мусор может не собираться до конца тестового прогона. Мы можем использовать tearDown() для сбора мусора до завершения тестового прогона. В этом методе мы явно присваиваем объекту значение null.

15. Как установить Junit?

Первый шаг — загрузить JUnit 5, последнюю версию JUnit (это будет файл с именем junit.zip). Нам потребуется разархивировать файл дистрибутива в каталог %JUNIT_HOME%. Затем мы добавим JUnit в путь к классам.

Далее мы протестируем установку. Это потребует запуска тестов-образцов (расположенных не в файле junit.jar, а в каталоге установки), распространяемых вместе с Junit. Наконец, мы подтвердим, что все тесты пройдены сообщением «ОК». Если нет, мы вернемся и проверим, находится ли junit.jar в пути к классам.

Ознакомьтесь с: Как кодировать, компилировать и запускать проекты Java

Заключение

С помощью приведенных выше вопросов для собеседования по JUnit вы можете освежить свои знания при подготовке к работе разработчика. Такие должности, как инженер по автоматизации тестирования и инженер-программист, также включают JUnit в желаемый набор навыков. Рекрутеры хотят оценить ваши технические знания и коммуникативные способности. Таким образом, содержание вашего ответа и то, как вы его представляете, будут иметь большое значение.

Если вам интересно узнать больше о разработке программного обеспечения с полным стеком, ознакомьтесь с дипломом PG upGrad & IIIT-B по разработке программного обеспечения с полным стеком, который предназначен для работающих профессионалов и предлагает более 500 часов интенсивного обучения, более 9 проектов и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Получите работу своей мечты

ОБНОВЛЕНИЕ И ДИПЛОМ IIIT-BANGALORE PG В РАЗРАБОТКЕ ПОЛНОГО СТЕКА
Зарегистрируйтесь сегодня