Допустим, у меня есть эта спецификация:
Given a UserProfile with some User and some UserPrefs
When ShowEmail in UserPrefs is set to true
Then the Email field in UserProfile should be the User's Email
And when ShowEmail in UserPrefs is set to false
Then the Email field in UserProfile should be "Hidden"
Круто.Достаточно просто;Я просто сделаю это в UserProfileViewModel
:
public string Email
{
get
{
if (UserPrefs.ShowEmail)
return User.Email;
else
return "Hidden";
}
}
И теперь я сделал минимум, необходимый для перехода в зеленый цвет (я изменяю состояние моего макета IUserPref
, а затем запрашиваю UserProfileViewModel.Email
),Большой;кроме случаев, когда UserPrefs
изменяет состояние внутри себя из-за другой бизнес-логики, любая привязка представления к UserProfileViewModel.Email
бесполезна.
Я не могу уведомить PropertyChanged
в приведенном выше коде, потому что тогда это больше не будетминимум, необходимый для прохождения теста.
Вопрос: Существует ли чистый способ сделать тест без единой связки обработчиков PropertyChanged
везде?PropertyChanged.Fody в некоторой степени помогает с такими вещами, но не совсем с этим конкретным сценарием.