gpt4 book ai didi

c# - 如何在需要 WPF 应用程序时进行单元测试?

转载 作者:太空宇宙 更新时间:2023-11-03 19:13:08 24 4
gpt4 key购买 nike

我需要使用单元测试来测试我的库。

不幸的是,该库将 System.Windows.Application 实例作为参数。通常在现实世界的 WPF 应用程序中,这将是 public partial class App : Application 条目 App.xaml 应用程序类。

这是库用于注册处理程序的 DispatcherUnhandledException 事件所必需的。

有没有办法模拟或初始化 Application.Current,它在 WPF 单元测试库中为 null?

谢谢。

最佳答案

用另一个实现接口(interface)的类包装它。当单元测试注入(inject)模拟实现时。

public interface IExceptionManager
{
event DispatcherUnhandledExceptionEventHandler DispatcherUnhandledException;
}

public class ExceptionManager : IExceptionManager
{
Application _app;

public ExceptionManager(Application app)
{
_app = app;
}

public event DispatcherUnhandledExceptionEventHandler DispatcherUnhandledException
{
add
{
_app.DispatcherUnhandledException += value;
}

remove
{
_app.DispatcherUnhandledException -= value;
}
}
}

public class MockExceptionManager: IExceptionManager
{
public event DispatcherUnhandledExceptionEventHandler DispatcherUnhandledException;
}

关于c# - 如何在需要 WPF 应用程序时进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19040723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com