По сути, я ищу ресурсы / руководства по модульному тестированию пользовательского элемента управления WPF.
В этом конкретном случае созданный мной пользовательский элемент управления расширяет класс Decorator
. Он оборачивает дочерний элемент PasswordBox для предоставления свойства пароля CLR в качестве свойства DependencyProperty.
public class BindablePasswordBox : Decorator
{
public BindablePasswordBox()
{
Child = new PasswordBox();
((PasswordBox)Child).PasswordChanged += this.PasswordChanged;
}
public static readonly DependencyProperty PasswordProperty =
DependencyProperty.Register("Password", typeof(String), typeof(BindablePasswordBox),
new FrameworkPropertyMetadata
{
BindsTwoWayByDefault = true,
DefaultUpdateSourceTrigger = UpdateSourceTrigger.LostFocus
});
public String Password
{
get { return (String)GetValue(PasswordProperty); }
set { SetValue(PasswordProperty, value); }
}
void PasswordChanged(Object sender, RoutedEventArgs e)
{
Password = ((PasswordBox)Child).Password;
}
}
P.S. Я использую встроенную среду тестирования Visual Studio (Microsoft.VisualStudio.QualityTools.UnitTestFramework
).
Чтобы избежать негативной реакции по поводу предоставления незашифрованных паролей в памяти: я понимаю, что я иду против соображений безопасности Microsoft, выставляя открытый пароль в DependencyProperty, но учитывая, что я смог использовать Snoop для разоблачить незашифрованный пароль из стандартного PasswordBox Я не считаю его таким уж важным.