Вопросы с тегом «mocking»

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

103
(Почему) важно, чтобы модульный тест не проверял зависимости?

Я понимаю ценность автоматизированного тестирования и использую его там, где проблема достаточно четко определена, чтобы я мог придумать хорошие контрольные примеры. Однако я заметил, что некоторые люди здесь и в StackOverflow делают упор на тестировании только модуля, а не его зависимостей. Здесь...

98
Как вы обнаруживаете проблемы с зависимостями в модульных тестах, когда используете фиктивные объекты?

У вас есть класс X, и вы пишете несколько модульных тестов, которые проверяют поведение X1. Есть также класс A, который принимает X в качестве зависимости. Когда вы пишете модульные тесты для A, вы имитируете X. Другими словами, во время модульного тестирования A вы устанавливаете (постулируете)...

85
Является ли статика универсальным «злом» для модульного тестирования, и если да, то почему Resharper рекомендует его? [закрыто]

Я обнаружил, что существует только 3 способа статических зависимостей модульного тестирования (макет / заглушка) в C # .NET: Кроты TypeMock JustMock Учитывая, что два из них не бесплатны, а один не выпущен в версии 1.0, издеваться над статичными вещами не так уж и легко. Имеет ли это статические...

80
Как именно следует писать модульные тесты без насмешек?

Как я понимаю, суть модульных тестов заключается в том, чтобы тестировать модули кода изолированно . Это значит, что: Они не должны нарушаться никакими несвязанными изменениями кода в другом месте кодовой базы. Только один модульный тест должен прерваться из-за ошибки в тестируемом модуле, в...

68
Это правильное использование метода сброса Mockito?

У меня есть закрытый метод в моем тестовом классе, который создает часто используемый Barобъект. BarКонструктор вызывает someMethod()метод в моем издевались объекта: private @Mock Foo mockedObject; // My mocked object ... private Bar getBar() { Bar result = new Bar(mockedObject); // this calls...

34
Как мне протестировать систему, в которой объекты трудно подделать?

Я работаю со следующей системой: Network Data Feed -> Third Party Nio Library -> My Objects via adapter pattern Недавно у нас возникла проблема, когда я обновил версию библиотеки, которую использовал, что, помимо прочего, приводило к тому, что метки времени (которые возвращает сторонняя...

24
Использует ли интеграционное тестирование макеты?

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

21
Хрупкие юнит-тесты из-за необходимости чрезмерного издевательства

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

16
С точки зрения TDD, я плохой человек, если я проверяю против живой конечной точки, а не надругаться?

Я следую TDD религиозно. Мои проекты обычно имеют 85% или лучше тестовое покрытие, со значимыми тестовыми примерами. Я много работаю с HBase , и основной интерфейс клиента, HTable, очень неприятен. Для написания модульных тестов у меня уходит в 3 или 4 раза больше времени, чем для написания тестов,...

15
Как часто используются ложные объекты?

Недавно я прочитал статью, в которой говорилось, что фиктивные объекты часто неправильно понимают и неправильно используют. Есть ли какие-то явные насмешливые анти-паттерны, на которые я могу обратить...

15
Каковы ключевые факторы при выборе Mocking Framework?

Я ищу, чтобы начать с объектами в моих модульных тестах. Кажется, есть множество хороших насмешливых рамок. У разных фреймворков разная целевая аудитория? Какие факторы я должен учитывать при выборе подходящей структуры для моей ситуации?...

15
Насмешка вводит обработку в производственный код

Предполагая интерфейс IReader, реализацию интерфейса IReader ReaderImplementation и класс ReaderConsumer, который потребляет и обрабатывает данные из считывателя. public interface IReader { object Read() } Реализация public class ReaderImplementation { ... public object Read() { ... } }...

15
Как избежать необходимости модульного тестирования приватных методов

Я знаю, что вы не должны тестировать закрытые методы, и если вам кажется, что вам нужно, там может быть класс, ожидающий выхода. Но я не хочу иметь классы gazillion только для того, чтобы я мог тестировать их публичные интерфейсы, и я обнаружил, что для многих классов, если я просто тестирую...

14
Когда я должен использовать фиктивные объекты?

Я прочитал много вещей о TDD, но у меня все еще есть сомнения. Например, у меня есть эти диаграммы классов: Это простой пример, просто чтобы узнать о TDD и макете объектов. Какой тест я должен написать первым? Продукт , затем линия и последний, заказ ? Если я сделаю это, должен ли я использовать...

14
Модульное тестирование клиента API и оболочек

Я ходил кругами, пытаясь найти лучший способ модульного тестирования клиентской библиотеки API, которую я разрабатываю. Библиотека имеет Clientкласс, который в основном имеет отображение 1: 1 с API, и дополнительный Wrapperкласс, который обеспечивает более удобный интерфейс поверх Client. Wrapper...

14
Как тестировать код обработки изображения?

Я работаю в области обработки изображений (в основном OCR), и мне интересно, как мне интегрировать модульные тесты в мою разработку. Я уже использую модульные тесты для более «распространенного» типа кода, но когда имею дело с кодом обработки изображений, я не уверен, как с этим справиться. Этот...

13
Не нарушают ли макеты принцип Open / Closed?

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

13
Как протестировать код, который зависит от сложных API (например, Amazon S3)?

Я борюсь с тестированием метода, который загружает документы в Amazon S3, но я думаю, что этот вопрос относится к любой нетривиальной зависимости API / external. У меня есть только три возможных решения, но ни одно из них не выглядит удовлетворительным: Запустите код, фактически загрузите документ,...

12
Тестирование - БД в памяти против Mocking

При написании тестов, почему кто-то хотел бы использовать базу данных в памяти, а не просто издеваться над данными? Я мог видеть, что базы данных в памяти могут быть полезны для тестирования своих репозиториев. Но если использовать каркас (такой как Spring Data), тестирование репозиториев будет...