【问题标题】:INotifyPropertyChanged PropertyChanged event is null when called during unit tests [duplicate]在单元测试期间调用 INotifyPropertyChanged PropertyChanged 事件为空 [重复]
【发布时间】:2021-03-15 22:16:49
【问题描述】:

我正在尝试在 WPF MVVM 应用程序中对我的视图模型进行单元测试。此应用程序当前运行时正确运行

我的 ViewModel 实现了 INotifyPropertyChanged 并引发了正确的 PropertyChanged 事件 单元测试时,PropertyChanged 事件为 null,因此抛出异常

我对 Application.Current 陷入了困境,但已确认它在运行单元测试时已设置

我需要设置/模拟什么来防止这种情况发生?

【问题讨论】:

  • “我需要设置/模拟什么来防止这种情况发生?”——显然,您需要订阅PropertyChanged 事件。请参阅重复的一种方法。如果您遇到麻烦,请随时发布一个新问题,并且您愿意努力包含正确的minimal reproducible example,以及代码的作用的详细说明,它与您想要的有何不同,以及具体你需要什么帮助。

标签: c# wpf unit-testing mvvm


【解决方案1】:

PropertyChanged 的调用应始终检查空值。

例如

public void RaisePropertyChanged(string propertyName = null)
{
    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

【讨论】:

  • 虽然我同意这一点并且它确实解决了我最初的问题,但它不允许我测试是否调用了 PropertyChanged 事件?
猜你喜欢
  • 2020-05-11
  • 2018-02-16
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
相关资源
最近更新 更多