Во-первых, Пожалуйста, несите меня со всеми моими вопросами. Я никогда не использовал TDD раньше, но все больше и больше я понимаю, что должен. Я прочитал много сообщений и руководств по TDD, но некоторые вещи до сих пор не ясны. В большинстве случаев для демонстрации используются математический расчет или некоторые другие простые операции. Я также начал читать книгу Роя Ошерове о TDD. Вот несколько вопросов, которые у меня есть:
Если у вас есть объект в вашем решении, например класс Account, в чем же смысл тестирования установки свойства на нем, например имя учетной записи, то вы утверждаете, что все, что вы установили, является правильным. Неужели это никогда не закончится?
Другим примером, балансом счета, вы создаете объект с балансом 300, тогда вы утверждаете, что на самом деле баланс равен 300. Как это может закончиться? Что я буду тестировать здесь? Я вижу, что тестирование операции вычитания с различными входными параметрами было бы более хорошим тестом.
На что я должен проверять свои объекты? методов или свойств? иногда у вас также есть объекты как службы на уровне инфраструктуры. В случае методов, если у вас есть трехуровневое приложение, а бизнес-уровень вызывает уровень данных для некоторых данных. Что тестируется в этом случае? параметры? объект данных не является нулевым? как насчет услуг?
Тогда на мой вопрос относительно проекта реальной жизни, если у вас есть зеленый проект, и вы хотите начать его с TDD. С чего вы начинаете сначала? вы делите свой проект на функции, а затем на каждый из них или вы произвольно выбираете его, и вы идете оттуда.
Например, у меня есть новый проект, и для него требуется возможность входа в систему. Я начинаю с создания пользовательских тестов или тестов учетной записи или тестов входа в систему. С чего я начинаю сначала? Что я сначала тестирую в этом классе?
Скажем, я решил создать класс пользователя с именем пользователя и паролем и некоторыми другими свойствами. Я должен сначала создать тест, исправить всю ошибку сборки, запустить тест, чтобы он не сработал, а затем исправить снова, чтобы получить зеленый свет, а затем рефакторинг. Итак, каковы первые тесты, которые я должен создать в этом классе? Например, это:
- Username_Length_Greater_Than_6
- Username_Length_Less_Than_12
- Password_Complexity
Если вы утверждаете, что длина больше 6, как это тестирование кода? проверяем ли мы ошибку, если она меньше 6?
Прошу прощения, если я повторяю свои вопросы. Я просто пытаюсь начать работу с TDD, и мне не удалось изменить мышление. Спасибо, и, надеюсь, кто-то может помочь мне определить, чего мне здесь не хватает. Кстати, знает ли кто-нибудь о каких-либо дискуссионных группах или чатах относительно TDD, к которым я могу присоединиться?