Все примеры, которые я читал и видел на обучающих видео, имеют упрощенные примеры. Но что я не вижу, как я делаю «настоящий» код после того, как я становлюсь зеленым. Это часть "Refactor"?
Если у меня есть довольно сложный объект со сложным методом, и я пишу свой тест и минимальный минимум, чтобы он прошел (после первого сбоя, красный). Когда я вернусь и напишу настоящий код? И сколько реального кода я пишу перед повторным тестированием? Я предполагаю, что последний - больше интуиции.
Изменить: Спасибо всем, кто ответил. Все ваши ответы очень помогли мне. Кажется, есть разные идеи о том, что я спрашивал или смущал, и, может быть, есть, но я спрашивал, скажем, у меня есть заявление на строительство школы.
В моем дизайне у меня есть архитектура, с которой я хочу начать, пользовательские истории и так далее. Отсюда я беру эти пользовательские истории и создаю тест для проверки пользовательской истории. Пользователь говорит: у нас есть люди, которые записываются в школу и платят за регистрацию. Итак, я думаю о том, как это сделать. При этом я создаю тестовый класс для класса X (возможно, ученик), который не пройдёт. Я тогда создаю класс "Студент". Может быть, "Школа" я не знаю.
Но, в любом случае, TD Design заставляет меня задуматься над историей. Если я могу сделать тест неудачным, я знаю, почему он не проходит, но это предполагает, что я могу его пройти. Речь идет о разработке.
Я сравниваю это с мыслью о рекурсии. Рекурсия не сложная концепция. Может быть, на самом деле сложнее отслеживать это в своей голове, но на самом деле самое сложное - это знать, когда рекурсия «ломается», когда останавливаться (мое мнение, конечно.) Так что я должен думать о том, что останавливает Рекурсия первая. Это только несовершенная аналогия, и она предполагает, что каждая рекурсивная итерация является «проходом». Опять просто мнение.
В реализации, школу труднее увидеть. Цифровые и банковские регистры являются «простыми» в том смысле, что вы можете использовать простую арифметику. Я могу видеть a + b и возвращать 0 и т. Д. В случае системы людей, я должен подумать над тем, как это реализовать . У меня есть понятие провал, пасс, рефакторинг (в основном из-за изучения и этого вопроса.)
То, что я не знаю, основано на отсутствии опыта, по моему мнению. Я не знаю, как не подписать нового студента. Я не знаю, как ошибиться, если кто-то введет фамилию и она будет сохранена в базе данных. Я знаю, как сделать +1 для простой математики, но с такими объектами, как человек, я не знаю, проверяю ли я только, получаю ли я уникальный идентификатор базы данных или что-то еще, когда кто-то вводит имя в база данных или оба или нет.
Или, может быть, это показывает, что я все еще в замешательстве.