Как делают меня перегруженные функции модульного теста?

Вторая таблица является плохо денормализованной. Я придерживался бы первого подхода.

8
задан jpoh 15 September 2009 в 08:20
поделиться

4 ответа

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

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

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

6
ответ дан 5 December 2019 в 12:10
поделиться

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

Затем у вас есть пара простых тестов для каждого наложенного пути инициации.

1
ответ дан 5 December 2019 в 12:10
поделиться

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

Если вы предполагаете, что вы просто протестируйте реализацию, тогда просто протестируйте «основную» версию. Если вы думаете, как писатель тестов, который знает только о представленном API (javadocs или аналогичном), тогда вам нужно тестировать только на основе API, что подразумевает полное тестирование обоих методов.

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

0
ответ дан 5 December 2019 в 12:10
поделиться

Если ваш код остается в том виде, в каком он сейчас выглядит, то да: вам нужно будет провести модульное тестирование и этого метода, по сути дублируя ваши усилия по тестированию.

Однако, если есть смысл, реализовать функциональность так, чтобы один метод просто вызывал другой, вы могли бы сделать этот другой метод виртуальным. Это позволит вам создать подкласс для конкретного теста, в котором вы просто проверяете, что виртуальный метод вызывается другим методом с правильными значениями.

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

7
ответ дан 5 December 2019 в 12:10
поделиться
Другие вопросы по тегам:

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