我一直在使用moq来模拟单元测试中的对象,我在网站上看到moq它能够模拟类和接口.
前几天我与我的一个工作伙伴进行了讨论,他们表示没有理由去模拟课程,我只应该模拟界面.
我没有真正得到答案......我似乎也无法在moq网站上找到任何答案.
一个人永远不应该嘲笑课程是真的吗?我会说不,因为如果那是真的,那么Moq甚至不会允许它......那么有时候在界面上模拟一个类更好吗?模拟类与模拟接口有什么区别?或者它真的只是一个偏好的东西?
模拟课程是完全有效的.使用MoQ,您只能在类上模拟虚拟方法和属性.
当您具有抽象基类而不是接口,或者具有默认实现和虚拟的类作为扩展点时,它很有用.在许多情况下,您无法访问需要模拟的类的源代码..Net框架中有许多示例,例如MembershipProvider.