Должен ли я писать модульный тест для каждого общедоступного метода? Например, у меня есть служба CRUD, поэтому у меня есть методы create, read, update, delete
. Но когда я пишу тест delete
или update
методов, я неявно проверить read
и create
методы (например, для проверки методы update
первой мне нужно создать объект (create
), а затем получить его (read
), затем update
его, а затем извлечь его снова, чтобы убедиться, что он изменился).Должен ли я писать модульный тест для каждого публичного метода?
ответ
Я бы писать тесты для get
и create
, да:
- Это облегчает отдельное поведение вы намеренно тестирования от поведения вы кстати тестирование
- Это делает его легче проверить условия отказа и другие сценарии, которые не подпадают под ваши другие методы
- Это означает, что если вы изменили свою реализацию
delete
/update
в не использованиеget
/create
, вы по-прежнему испытыватьget
/create
В идеале, я бы попытаться (без получения слишком повесил об этом), чтобы сделать тесты, установленные и проверить данные на «нижний» уровень - например обеспечивая прямой доступ к базе данных в памяти. Таким образом, вы действительно тестируете «Если я создаю сущность, данные в базе данных выглядят как {this}» (а также при извлечении). Просто быть в состоянии создать, а затем получить те же результаты снова хорошо с точки зрения черный ящик тестирования, но я обычно думаю, модульные тесты, как больше белого ящика.
Должен ли я писать модульный тест для каждого общедоступного метода? Да
Написание тестового примера для каждого публичного метода - лучшая вещь. Для тестирования удалите операцию, вы должны позвонить сначала создать тест, а затем позвонить удалить тест метод. Таким образом, ваш метод проверки на удаление будет независимым, и вы сможете протестировать все возможные сценарии.
'вы должны сначала вызвать создание теста, а затем вызвать метод проверки удаления' .. хм .. действительно ли мои методы тестирования должны зависеть друг от друга? – MyTitle
нет..в этом случае создание как setup. Вы просто гарантируете, что объект, который вы хотите удалить, действительно доступен. –
- 1. Должен ли я писать модульный тест для конфигурационных констант?
- 2. Должен ли я записывать интеграционный тест или модульный тест?
- 3. Должен ли я писать модульный тест для контроллера или уровня обслуживания или для обоих из них?
- 4. Должен ли я писать единичный тест на все?
- 5. Что должен быть модульный тест для метода tostring?
- 6. Должен ли модульный тест следовать за PSR?
- 7. Как выполнить модульный тест для двоичного метода?
- 8. Должен ли я писать тест для каждого декоратора, или класса использования будет достаточно?
- 9. Ionic2 - как написать модульный тест для @Page
- 10. Является ли модульный тест применимым здесь?
- 11. Как модульный тест неформатированного метода в mvc?
- 12. Является ли модульный тест обязательным
- 13. Как модульный тест метода, который порождает потоки?
- 14. Какой атрибут должен иметь хороший модульный тест?
- 15. Можно ли создать динамический модульный тест?
- 16. Могу ли я написать модульный тест для следования в споке?
- 17. Единичный тест, должен ли я изменить параметр метода
- 18. Как модульный тест написан для метода в этом классе?
- 19. Создать модульный тест для Xsockets
- 20. Должен ли я писать модульные тесты для безуспешных методов?
- 21. Угловой 2 модульный тест
- 22. Бесцельный модульный тест
- 23. Может ли модульный тест не быть автоматическим?
- 24. Как сделать модульный тест для метода с параметром NetworkStream?
- 25. Как я могу написать модульный тест для события Gridview_RowCommand?
- 26. Как добавить модульный тест для нового класса?
- 27. Жасмин параметризованный модульный тест
- 28. Как модульный тест IDataErrorInfo?
- 29. Правильно реализовать модульный тест
- 30. Требуется ли модульный тест весны MVC или просто тест интеграции
поясните, почему этот вопрос не является конструктивным? – MyTitle
Вы должны проверить все, что требует тестирования. Лично я бы проверил каждый случай здесь, просто чтобы подтвердить комбинацию, а также отдельные операции. –
Это не конструктивно в том смысле, что этот вопрос заканчивается в дебатах. Это не дискуссионный сайт. –