9
基本上,我正在寻找关于如何单元测试WPF自定义控件的资源/指南。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
)。
要避免遇到有关内存暴露明文口令反弹:我明白,我会反对微软的安全推理由一个DependencyProperty暴露明文密码,但考虑到我能够使用Snoop揭露来自标准PasswordBox的明文密码我不觉得这一切很重要。
UI自动化是不一样的单元测试。 – 2015-04-17 18:36:48