我继承了一些现有项目,其中开发人员正在使用Dependency属性而不是INotifyPropertyChanged用于WPF更改通知。

我处于需要将单元测试改造为整个解决方案的位置。

ViewModel中的某些依赖项属性是从某些后台工作进程中直接异步异步更新的,因此我需要通过单元测试来进行这些更新。 (我无法更改代码并使用回调)。

如何实现呢?

许多开发人员似乎更喜欢依赖属性而不是INotifyPropertyChanged,但是似乎很难(如果不是不可能)编写单元测试。

我想念什么吗?

最佳答案

您可以使用DependencyPropertyDescriptor将更改的处理程序附加到依赖项属性:

DependencyPropertyDescriptor.FromProperty(TextBox.TextProperty, typeof(TextBox)).AddValueChanged(textBox, OnTextChanged);


但是,有一个slew of reasons不能在视图模型中使用依赖项属性。考虑到您已经继承了代码,我建议编写单元测试来断言代码的行为,然后切换到使用INotifyPropertyChanged

关于c# - 单元测试依赖项属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4268926/

10-09 16:23
查看更多