2011-04-01 192 views
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的明文密码我不觉得这一切很重要。

回答