Вопросы с тегом «unit-testing»

91
Есть ли причина, по которой тесты не пишутся inline с кодом, который они тестируют?

Недавно я немного читал о грамотном программировании , и это заставило меня задуматься ... Хорошо написанные тесты, особенно спецификации в стиле BDD, могут лучше объяснить, что делает код, чем проза, и имеют большое преимущество проверка собственной точности. Я никогда не видел тесты, написанные в...

91
Должны ли мы разрабатывать наш код с самого начала, чтобы включить модульное тестирование?

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

87
Где грань между логикой приложения модульного тестирования и ненадежными языковыми конструкциями?

Рассмотрим функцию, подобную этой: function savePeople(dataStore, people) { people.forEach(person => dataStore.savePerson(person)); } Это может быть использовано так: myDataStore = new Store('some connection string', 'password'); myPeople = ['Joe', 'Maggie', 'John']; savePeople(myDataStore,...

86
Насколько большим должен быть мой проект, чтобы я смог его протестировать? [закрыто]

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

86
Помогут ли модульные тесты Citigroup избежать этой дорогой ошибки?

Я читал об этом snafu: ошибка программирования стоит Citigroup $ 7 млн ​​после того, как допустимые транзакции ошибочно принимались за тестовые данные в течение 15 лет . Когда система была представлена ​​в середине 1990-х годов, программный код отфильтровывал все транзакции, которым были присвоены...

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

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

84
Это плохая практика для обеспечения порядка выполнения для модульных тестов?

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

84
Считается ли «плохой практикой» проверка содержимого / кодировки файла в модульных тестах?

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

83
Разве юнит-тесты не должны использовать мои собственные методы?

Сегодня я смотрел видео " Основы JUnit ", и автор сказал, что при тестировании определенного метода в вашей программе вы не должны использовать другие ваши собственные методы в этом процессе. Чтобы быть более конкретным, он говорил о тестировании некоторого метода создания записи, который принимает...

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

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

77
Это плохая практика, чтобы модифицировать код строго для целей тестирования

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

72
Имеет ли смысл писать тесты для унаследованного кода, когда нет времени для полного рефакторинга?

Я обычно стараюсь следовать советам книги Эффективная работа с унаследованным Cod е . Я нарушаю зависимости, перемещаю части кода в @VisibleForTesting public staticметоды и в новые классы, чтобы сделать код (или, по крайней мере, его часть) тестируемым. И я пишу тесты, чтобы убедиться, что я ничего...

68
Написание тестов для существующего кода

Предположим, у кого-то была относительно большая программа (скажем, 900k SLOC на C #), все тщательно прокомментированы / задокументированы, хорошо организованы и работают хорошо. Вся база кода была написана одним старшим разработчиком, который больше не работает в компании. Весь код тестируется как...

64
Разница между модульным тестированием и разработкой на основе тестирования

Из прочтения описаний я понимаю, что в TDD тесты выполняются до написания функции, а в модульном тестировании - после. Является ли это основным отличием, или эти два термина даже нельзя сравнивать как таковые? Возможно, Unit Testing является неотъемлемой частью...

62
Достаточно ли использовать приемочные и интеграционные тесты вместо юнит-тестов?

Краткое введение в этот вопрос. Я использовал сейчас TDD и в последнее время BDD уже более года. Я использую такие приемы, как издевательство, чтобы писать свои тесты более эффективно. В последнее время я начал личный проект, чтобы написать небольшую программу управления капиталом для себя....

62
Должны ли мы проверить все наши методы?

Поэтому сегодня я поговорил с моим товарищем по команде о модульном тестировании. Все началось, когда он спросил меня: «Привет, где тесты для этого класса, я вижу только один?». Весь класс был менеджером (или службой, если вы предпочитаете называть это так), и почти все методы просто делегировали...

61
Как написать «хорошие» юнит-тесты?

Приведенный в действие этим потоком , я (снова) думаю об окончательном использовании модульных тестов в моих проектах. Несколько постеров там говорят что-то вроде «Тесты - это круто, если они хорошие тесты». Мой вопрос сейчас: что такое "хорошие" тесты? В моих приложениях основная часть часто...

59
Покрытие кода выделяет неиспользуемые методы - что мне делать?

Мне было поручено увеличить охват кода существующего проекта Java. Я заметил, что инструмент покрытия кода ( EclEmma ) выделил некоторые методы, которые никогда нигде не вызываются. Моя первоначальная реакция не в том, чтобы написать модульные тесты для этих методов, а в том, чтобы выделить их для...

59
Есть ли смысл в модульных тестах, которые заглушают и издеваются над всем?

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

58
Допустимы ли магические числа в модульных тестах, если числа ничего не значат?

В моих модульных тестах я часто выбрасываю произвольные значения в свой код, чтобы посмотреть, что он делает. Например, если я знаю, что foo(1, 2, 3)должен возвращать 17, я мог бы написать это: assertEqual(foo(1, 2, 3), 17) Эти числа являются чисто произвольными и не имеют более широкого значения...