Как применить методологию TDD / BDD для создания файлов Excel из C # с использованием данных из базы данных Oracle

#c# #unit-testing #tdd #bdd

#c# #модульное тестирование #tdd #bdd

Вопрос:

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

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

Что мне нужно проверить? Если я не могу установить некоторые инструменты DI или Mock, есть ли у меня какие-либо возможности для правильного создания подхода TDD / BDD?

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

До сих пор я установил NUnit. Я не уверен, нужны ли мне другие инструменты или рамки кода / библиотеки.

Спасибо.

Ответ №1:

ИМО, если вы новичок и хотите изучить TDD и BDD, это может быть не лучший проект для начала.

TDD и BDD очень хорошо работают при работе с объектами. Чем дальше вы находитесь от объектов, тем сложнее это становится, потому что вы имеете дело с внешними зависимостями, которые сложно протестировать. Хорошими примерами этого могут быть как DB, так и файл Excel. В то время как довольно просто создать экземпляр тестового объекта, установить для него известное состояние и проверить его состояние после некоторых операций, то же самое сложно, скажем, с БД: вам нужно либо использовать реальную БД, настроить ее состояние, и написать дополнительный код для проверки его состояния (это скорее подход к тестированию интеграции), или используйте Mocks, что может быть не самым простым методом для начала.

Мой совет для начала — сосредоточиться на тех частях вашего приложения, которые имеют дело исключительно с объектами. В этом контексте NUnit и Mocking framework, такие как Moq, в основном достаточны.

Комментарии:

1. Спасибо, что упомянули, что это не лучший проект для начала для TDD / BDD. У меня сложилось такое же впечатление (и вы это подтвердили), поскольку большинство статей и примеров, которые я видел, более объектно-ориентированы. Я не выбираю этот проект в качестве учебного материала для TDD / BDD, но мне нужно сделать проект, и я подумал, что попробую одновременно выполнить некоторые BDD / TDD.

2. Я думаю, что использование TDD в этом проекте не повредит, но это будет не самым простым. Я бы сосредоточился на главном в вашем приложении: учитывая, что у вас есть некоторые данные, которые вы получили из БД, инкапсулируйте их в объекты и преобразуйте их в действия, снова инкапсулированные в объекты, которые будут выполняться в файле Excel. Эту часть будет легко протестировать, поскольку вы можете проверять поведение объектов и иметь дизайн, не связанный с тем, как хранятся ваши данные. Самое сложное с точки зрения TDD — проверить, что вы получаете правильные данные из БД и правильный файл Excel с учетом вашего выходного объекта.

Ответ №2:

Я бы посмотрел на библиотеки mspec через NuGet.