В моем проекте много статических методов, и все они inturn попадают в БД. Я должен написать Unit Test для проекта, но часто поражаюсь, поскольку все методы статичны, и они попадают в БД. Есть ли способ преодолеть это. Извините за абстрактность в вопросе, но моя забота - это то, как написать единичный тест для статических методов и тех, кто попадает в БД. MOQ не полезно, когда методы статичны, а также в моем проекте один метод вызывает другой метод в пределах одного класса. Таким образом, в этом случае я не могу использовать MOQ внутри метода, поскольку оба находятся в одном классе.Записывать единичные тесты для статических методов
ответ
Проект, в котором я сейчас, намного хуже, чем вы описали. Это синяя печать не проверяемой системы. Я думаю, есть несколько вариантов, но все зависит от вашей ситуации.
Записать интеграционный тест, который попадает в базу данных и протестировать несколько компонентов вместе. Я знаю, что это не идеально, но, по крайней мере, я уверен, что вы работаете. Затем попробуйте реорганизовать свой код на небольшом шаге за раз (не забудьте взять детские шаги) и напишите тесты модуля вокруг этого кода. Убедитесь, что ваши интеграционные тесты продолжают проходить. Вам по-прежнему разрешено реорганизовывать ваши тесты типа промежуточного поколения, если семантика изменена.
Это может быть не так просто, как я сказал, и это требует времени. Вот почему я сказал, что это зависит от вашей ситуации.
Другой вариант был бы (я знаю, что многие люди делают это с унаследованным кодом), чтобы использовать одну из этих дорогостоящих инфраструктур изоляции, таких как Isolator, MS Fakes, возможно, для подделки этих не проверяемых зависимостей. После того, как эти тесты написаны, вы можете посмотреть, как изменить код, чтобы сделать его более проверяемым.
Да, в настоящее время я пишу только тест интеграции. Я понимаю ваше решение. Я не уверен, насколько это поможет моей ситуации, но попытается их реализовать. – Wilson
- 1. Записывать единичные тесты для restish в Python
- 2. Как написать единичные тесты вокруг частных методов
- 3. Как следует записывать единичные тесты для метода «send-receive»?
- 4. Записывать единичные тесты в сборку или в отдельный сборник?
- 5. единичные тесты для скрипинга экрана?
- 6. Единичные тесты для std :: map
- 7. Единичные тесты Parsec?
- 8. Единичные тесты под intellij
- 9. Единичные тесты классов андроидов
- 10. Единичные тесты для JPA/Persistence в целом
- 11. Единичные тесты: где остановиться?
- 12. Единичные тесты: сухие против предсказуемости
- 13. Мощные модульные тесты для статических методов локального масштаба
- 14. Единичные тесты, STAssertThrows и NSExceptions
- 15. Единичные тесты и база данных
- 16. Gmock для статических методов
- 17. Единичные тесты для Parse Cloud Code?
- 18. Единичные тесты для NSOperationQueue с maxConcurrentOperationCount
- 19. Единичные тесты для пользовательских ресурсов шеф-повара
- 20. Единичные тесты для возврата метода xmldocument
- 21. Единичные тесты для отправки формы django
- 22. Единичные тесты для простого клиента REST
- 23. Единичные тесты AngularJS для службы базы данных
- 24. Единичные тесты для одного основного метода
- 25. покрытие носететов и единичные тесты
- 26. Единичные тесты: Тестирование внутреннего обещания
- 27. Единичные тесты никогда не выполняются
- 28. Единичные тесты - метод пользовательского контроллера
- 29. Единичные тесты мангуста с сиконом
- 30. Единичные тесты в отдельном проекте
Похоже, вы пытаетесь написать модульные тесты после написания производственного кода. В этой книге рассматривается книга [Эффективная работа с устаревшим кодом] (http://amzn.to/Vzxdhd). –