我正在尝试使用Microsoft Team System提供的测试套件对我的WPF数据绑定进行单元测试.我希望能够在不显示窗口的情况下测试绑定,因为我的大多数测试都是针对用户控件而不是实际上是在窗口上.这可能还是有更好的方法吗?如果我显示窗口,下面的代码可以工作,但如果我没有,则绑定不会更新.
Window1_Accessor target = new Window1_Accessor(); UnitTestingWPF.Window1_Accessor.Person p = new UnitTestingWPF.Window1_Accessor.Person() { FirstName = "Shane" }; Window1 window = (target.Target as Window1); window.DataContext = p; //window.Show(); //Only Works when I actually show the window //Is it possible to manually update the binding here, maybe? Is there a better way? Assert.AreEqual("Shane", target.textBoxFirstName.Text); //Fails if I don't Show() the window because the bindings aren't updated
Benoit Blanc.. 6
在寻找将WPF绑定错误转换为异常的解决方案时,我发现它也可以用于单元测试项目中.
该技术非常简单:
导出TraceListener
抛出而不是记录
添加该侦听器 PresentationTraceSources.DataBindingSource
请参阅GitHub上的完整解决方案,它包括一个单元测试项目.
在寻找将WPF绑定错误转换为异常的解决方案时,我发现它也可以用于单元测试项目中.
该技术非常简单:
导出TraceListener
抛出而不是记录
添加该侦听器 PresentationTraceSources.DataBindingSource
请参阅GitHub上的完整解决方案,它包括一个单元测试项目.