【发布时间】:2014-02-17 06:56:46
【问题描述】:
我是第一次尝试 Moles。当我尝试在 System.Windows.Forms 上添加 Moles 程序集时,它会生成引用 System.Collections.Generic.IReadOnlyCollection 和 IReadOnlyList 的代码,因为它们仅在 .NET Framework 4.5 中并且我的项目都是 4.0 在VS2010。我已将程序集引用设置为特定版本,但这没有帮助。有什么想法吗?
【问题讨论】:
-
为什么要在 WinForms 中添加 Moles?通常你应该在你的单元测试项目中引用它。
-
但是你提到的很奇怪,因为 Moles 是用于 VS 2010 在 VS 2012 中你需要使用 Fakes afaik。因此,痣需要引用 .Net Fx 4.5 类是没有意义的。
-
@Dannydust 我正在测试的代码是 BizTalk 适配器的配置 UI。它只是一个由 MMC 中的 BizTalk 框架运行的 dll,所以我让它调用 MessageBox.Show 来向用户显示任何错误。我想测试其余的功能,但要模拟这个调用。它是 BizTalk 2010,它只在 Visual Studio 2010 中受支持,所以我不能使用 Fakes。我什至没有安装 VS2012。
-
如何用 Action
替换对 MessageBox.Show 的调用以避免这种依赖关系?调用者本身应该将 (str) => MessageBox.Show(str) 作为参数传递。这不是解决方案,而是解决方法。我经常在我的代码中这样做,所以不同的调用者可以传递不同的逻辑(显示一个消息框,写一个日志条目,...) -
是的,很抱歉,我无法为您提供更多帮助,我会投票支持您的问题以引起更多关注。
标签: c# .net visual-studio-2010 moles