WPF自定义控件-如何对自定义控件进行单元测试?

WPF自定义控件-如何对自定义控件进行单元测试?,wpf,unit-testing,custom-controls,dependency-properties,Wpf,Unit Testing,Custom Controls,Dependency Properties,基本上,我正在寻找关于如何对WPF自定义控件进行单元测试的资源/指南 在这个特定的实例中,我创建的自定义控件恰好扩展了Decorator类。它包装PasswordBox子项以将CLR Password属性作为DependencyProperty公开 public class BindablePasswordBox : Decorator { public BindablePasswordBox() { Child = new PasswordBox();

基本上,我正在寻找关于如何对WPF自定义控件进行单元测试的资源/指南

在这个特定的实例中,我创建的自定义控件恰好扩展了
Decorator
类。它包装PasswordBox子项以将CLR Password属性作为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;
    }
}
另外,我正在使用内置的Visual Studio测试框架(
Microsoft.VisualStudio.QualityTools.UnitTestFramework



为了避免因在内存中公开明文密码而引起反弹:我知道我在DependencyProperty中公开明文密码违背了微软的安全推理,但是考虑到我能够使用标准密码箱公开明文密码,我觉得它不再那么重要。

您可以使用UI自动化,有关更多信息,请参阅以下链接:


UI自动化与单元测试不同。