61得票1回答
如何告诉Pex不要为具有实现的抽象类进行存根处理

我正在尝试使用Pex对一些代码进行测试。我有一个抽象类,有四个具体的实现。我已经为每个具体类型创建了工厂方法,也为抽象类型创建了一个工厂方法。但正如这个很好的帖子所解释的那样,Pex不会使用抽象工厂方法,也不应该。 问题在于我的一些代码依赖于只有这四个具体类型(因为非常不可能创建任何更多的子...

22得票3回答
Moles隔离框架是如何实现的?

Moles是由微软创建的一种隔离框架。 Moles的一个很酷的特性是它可以“模拟”静态/非虚方法和密封类(这在像Moq这样的框架中是不可能的)。以下是Moles可以做到的快速演示:Assert.AreNotEqual(new DateTime(2012, 1, 1), DateTime.Now...

16得票2回答
.NET方法不会生成Shims

当我开始使用Microsoft Fakes时,我很兴奋地开始对一些.NET方法进行振铃。我被告知我可以振铃任何.NET方法(静态或非静态):http://msdn.microsoft.com/en-us/library/hh549176.aspx。 然而,我一直在尝试振铃TcpClient中...

12得票6回答
如何在使用HostType("Moles")的测试中读取UnitTest项目的App.Config文件

我有以下这些测试:[TestClass] public class GeneralTest { [TestMethod] public void VerifyAppDomainHasConfigurationSettings() { string val...

11得票3回答
在Visual Studio 2012中编译Moles时出现“类型或命名空间xxxx不存在”的错误。

我正在尝试编译一个已有的项目(目标为.NET4),该项目是在Visual Studio 2010中开发的,现在正在测试迁移到VS2012。 当我使用 "Moles" 编译我的现有项目时,我经常会遇到以下错误: "The type or namespace name 'Claim' does...

7得票2回答
如何在构造函数中使用 Moles?

我有一个如下所示的类: public class Product : IProduct { static private string _defaultName = "default"; private string _name; private float _pri...

7得票1回答
微软伪造的Shims在内部是如何工作的?

我对它的实现方式很感兴趣。 基本上:我如何重新实现同样的东西? ......但我并不打算这么做。只是想理解。 基本问题是: 如何才能 (?) 拦截类实例化? 在一个情况下如何用一个实现替换另一个实现,在另一个情况下如何用原始实现或甚至不同的实现替换它? 如何才能拦截静态方法或密封类。 所...

7得票2回答
在VS 2012中远离Pex和Moles?

谈到测试,我是通过实践慢慢逐渐了解其重要性的。现在我是一个狂热粉丝,并经常使用像TDD这样的方法。在 VS 2010 中,我通常使用 MSTEST 进行设计和回归测试。这非常棒 - 所有我的项目都是开源的,并与我的工作(大学物理研究)相连。接着,我开始使用 Pex,这对于发现我之前没有想到的各...