我正在尝试对从我的 ViewModel 调用的这个方法进行单元测试:
public virtual string[] ExtractFilePaths(DragEventArgs dragEventArgs)
{
string[] droppedPaths = null;
if (dragEventArgs.Data.GetDataPresent(DataFormats.FileDrop))
{
droppedPaths = dragEventArgs.Data.GetData(DataFormats.FileDrop, true) as string[];
}
return droppedPaths;
}
Run Code Online (Sandbox Code Playgroud)
我将这种方法与 Caliburn 联系起来。我知道这是一个非常简单的方法,几乎只使用框架类,但我觉得它仍然需要测试。问题是,Moq 不能模拟 DragEventArgs。有没有办法解决这个问题,或者我不应该费心测试这种方法?
我的.SLN文件中有20个项目.我正在通过Test Explorer运行我的单元测试并生成代码覆盖率.只有八个项目出现在报道中(见截图).我正在使用runsettings文件,其中我已注释掉所有<exclude>标记的内容,如下所示:
<PublicKeyTokens>
<!-- Exclude Visual Studio extensions: -->
<Exclude>
<!--
<PublicKeyToken>^B77A5C561934E089$</PublicKeyToken>
<PublicKeyToken>^B03F5F7F11D50A3A$</PublicKeyToken>
<PublicKeyToken>^31BF3856AD364E35$</PublicKeyToken>
<PublicKeyToken>^89845DCD8080CC91$</PublicKeyToken>
<PublicKeyToken>^71E9BCE111E9429C$</PublicKeyToken>
<PublicKeyToken>^8F50407C4E9E73B6$</PublicKeyToken>
<PublicKeyToken>^E361AF139669C375$</PublicKeyToken>
-->
</Exclude>
</PublicKeyTokens>
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么其他12个项目没有显示在覆盖结果中.有任何想法吗?
解决方案项目:

代码覆盖率结果:
