gpt4 book ai didi

c# - 如何模拟 Application.Current 进行单元测试?

转载 作者:行者123 更新时间:2023-11-30 14:32:44 25 4
gpt4 key购买 nike

我有这个:

<Image.Effect>
<fx:GrayscaleEffect DesaturationFactor="0"/>
</Image.Effect>

还有这个:

public class GrayscaleEffect : ShaderEffect{
private static PixelShader _pixelShader = new PixelShader()
{
UriSource = new Uri(@"pack://application:,,,/Effects/GrayscaleEffect.ps")
};
/* ... rest of the class ... */
}

当我对其进行单元测试时 (MSTest),它显然会引发 IOException(因为 Application.Current 为空,所以 pack://application:,,,/... 指向任何地方)并出现此错误:

Assembly.GetEntryAssembly() 返回 null。设置 Application.ResourceAssembly 属性或使用 pack://application:,,,/assemblyname;component/语法来指定要从中加载资源的程序集。

如何模拟/注入(inject)解决问题所需的任何内容?

最佳答案

Tal 的回答对我没有用,我只是在运行我的测试和 Application.Current 之前调用下面:

var app = new Application();

关于c# - 如何模拟 Application.Current 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17989241/

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