我一直在编写一些提供程序,它们继承自providerbase类。我发现编写使用提供程序的测试很困难,因为大多数模拟框架只允许您模拟一个界面。嘲笑不是接口的类
有什么办法模拟对从providerbase继承的提供者的调用吗?
如果没有,是否有一种模式可以用来实现模拟提供者?
我一直在编写一些提供程序,它们继承自providerbase类。我发现编写使用提供程序的测试很困难,因为大多数模拟框架只允许您模拟一个界面。嘲笑不是接口的类
有什么办法模拟对从providerbase继承的提供者的调用吗?
如果没有,是否有一种模式可以用来实现模拟提供者?
我知道犀牛制品可以模拟类也一样,大多数其他嘲讽框架应该有这个没有问题无论是。
事情太记住:班级不能密封。你需要标记你想虚拟的方法,并且这个类需要一个没有参数的构造函数,这可以被保护,private不起作用。 (刚刚试过)
请记住,模拟框架只会创建一个继承自类的类并创建该类型的对象。所以构造函数会被调用。这可能会在测试中导致意外的行为。
RhinoMocks或Moq将为类和接口创建测试双打。类型必须具有虚拟方法或者是抽象的。 Typemock隔离器解决了这个问题。
我建议你想模拟的对象应该是抽象的(dependency inversion principle)。
当你说“提供者”我们在谈论ASP.NET提供者吗? – 2008-09-25 07:08:19