C# 如何模拟单元测试的当前应用程序?

C# 如何模拟单元测试的当前应用程序?,c#,wpf,unit-testing,mocking,mstest,C#,Wpf,Unit Testing,Mocking,Mstest,我有这个: <Image.Effect> <fx:GrayscaleEffect DesaturationFactor="0"/> </Image.Effect> 当我对它进行单元测试(MSTest)时,它显然会引发IOException(因为Application.Current为空,所以pack://application:,,,/…不指向任何地方)出现此错误: Assembly.GetEntryAssembly()返回null。设置Applic

我有这个:

<Image.Effect>
    <fx:GrayscaleEffect DesaturationFactor="0"/>
</Image.Effect>
当我对它进行单元测试(
MSTest
)时,它显然会引发
IOException
(因为
Application.Current
为空,所以
pack://application:,,,/…
不指向任何地方)出现此错误:

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

我如何模拟/注入解决问题所需的任何东西?

好的,得到了,多亏了:


Tal的回答对我不起作用,我只是在运行我的测试和应用程序之前给下面打电话。当前已填充:

var app = new Application();

我认为将Uri注入GrayscaleEffect会更容易。这对你有用吗?@DanielSklenitzka:是的。怎样?
if(Application.ResourceAssembly == null)
    Application.ResourceAssembly = typeof(MainWindow).Assembly;

var window = new MainWindow();
var app = new Application();