Это я возвращаюсь к основам TDD в учебных целях.
Я изначально реализовал Person.Surname
как поле типа объекта (самый простой способ пройти тест.
Затем я добавил тестовую настройку Person.Surname
, утверждающую, что возвращаемое значение должно быть строкой, и установил Person.Surname=20
.
Я «исправил» тест, изменив реализацию на использование string
вместо object
. Тест теперь долго компилируется из-за статической проверки типов, поэтому я закомментировал его.
Person.Surname
поле в настоящее время реализовано в виде строки. Если я изменю реализацию поля на объект, ни один из моих тестов не пройдёт.
Так что я не могу оставить свое намерение в тесте. Есть ли способ пройти неудачный тест в этих обстоятельствах?
Обновление:
Я согласен с Эско, что вы практически не хотите этим заниматься.
С точки зрения обучения, я пытался подчеркнуть, что если я (или кто-то еще в более поздний момент времени) расширит область видимости моего поля (скажем, от строки к объекту), то я не получу ничего напрямую провал модульных тестов. Может быть, это не так уж плохо?