Что такое ложные объекты на Яве?

Мне нравится знать, какие ложные объекты находятся на Яве. Почему мы создаем их и каково их использование?

43
задан Noldorin 24 January 2010 в 18:34
поделиться

5 ответов

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

Общими Java-фреймворками для создания имитационных объектов являются JMock и EasyMock. Обычно они позволяют создавать имитирующие объекты, поведение которых вы можете определить, так что вы точно знаете, чего ожидать (относительно возвращаемых значений и побочных эффектов) при вызове методов на имитирующем объекте.

В качестве примера можно привести один обычный случай использования в MVC-приложении, где у вас есть уровень DAO (объекты доступа к данным) и контроллер, выполняющий бизнес-логику. Если вы хотите протестировать контроллер на юнитингах, а контроллер имеет зависимость от DAO, вы можете сделать имитацию DAO, которая вернет поддельные объекты на ваш контроллер.

Важным моментом является то, что обычно поддельные объекты реализуют тот же самый интерфейс, что и объекты, над которыми они насмехаются - это позволяет вашему коду работать с ними через тип интерфейса, как будто они являются экземплярами реальной вещи.

56
ответ дан 26 November 2019 в 22:52
поделиться

Объекты издевательства и макеты не специфичны для Java. Мачные объекты - это тестирование подразделения Техника, в которой кодовой кусок заменяется фиктивными реализациями, которые эмулируют Реальный код. Это помогает написать тесты подразделения, нацеленные на предоставленную функционал по классу под тестом.

Проверьте эти статьи, которые обеспечивают очень хорошее введение в концепцию издевательства:
объекты MOCK (PDF)
Эндо-тестирование: тестирование единиц с помощью объектов MOCK (PDF)

Если вы ищете макетную структуру для тестирования подразделения в Java, Посмотрите на: Mockito . Я нашел это полезным для моих модульных тестов.

15
ответ дан 26 November 2019 в 22:52
поделиться

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

Mockito - очень простая и понятная библиотека объектов Java mock.

5
ответ дан 26 November 2019 в 22:52
поделиться

Объекты издевательства - это тот, который используется в модульном тестировании. Что помогает вам проверить единственную функциональность, которую вы хотите проверить. Поскольку все зависимости могут быть достигнуты за счет издевания этих зависимых объектов. Поэтому, если тестовые пропускают, вы будете уверены, что ваш блок тестирования является правильным.

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

1
ответ дан 26 November 2019 в 22:52
поделиться

Цитата отсюда: http://easymock.org/

Тестирование подразделения - это тестирование Программные единицы в изоляции. Тем не мение, Большинство единиц не работают в одиночку, но они Сотрудничать с другими подразделениями. Тестировать единица в изоляции, мы должны Имитация сотрудников в тестовое задание. Объект Mock - это тестовый замена для сотрудника. это настроен для моделирования объекта, который Он заменяет простым способом.

Например, если вы хотите протестировать HTTP-вызовы, вам нужно будет создать объекты реального запроса на жизнь, в комплекте со всеми их зависимостями. Это часто может потребоваться много усилий, поэтому использование издеватых объектов, которые обеспечивают более быстрый путь к созданию точного выполнения нужного объекта, без длинной цепочки зависимостей.

4
ответ дан 26 November 2019 в 22:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: