![]() |
1
37
TypeMock是一种商业产品(意味着您必须为此付费),但它允许您模拟具体对象,而Rhinomock/NUnit/MoQ只能模拟接口/抽象类。它是如何做到这一点的是边缘黑魔法,但它用CLR做了一些非常聪明的事情。 当您在项目中使用不使用许多接口的库时,这可能特别有用。例如,您可以使用TypeMock模拟LINQtoSQL数据上下文或Sharepoint对象。但是,如果您使用的是TypeMock,则 在应用程序中没有糟糕设计的借口 . 据我所知,除了细微的语法差异外,大多数模拟框架都已经脱离了旧的记录/回放模型。通常,通过使用流畅的界面编写期望值来设置模拟。 就个人而言,我只使用了最小起订量和I<3它。 |
![]() |
2
19
一个叫 TDD - Understanding Mock Objects TypeMock和开源库的主要区别在于,TypeMock使用Microsoft提供的探查器API,而不是 dynamic proxy . 这允许TypeMock模拟具体的类和静态方法。如果您不确定探查器是什么,那么它就是JetBrain的dotTrace和RedGate的Ants.Net探查器等工具所使用的API。TypeMock只是以不同的方式使用API来伪造(模拟)您告诉它的内容。 @RichardOD,谢谢你的提醒,他的书“ The Art of Unit Testing “这本书是我自己的,内容非常丰富。 |
![]() |
3
14
我没有任何与其他人的个人经验,但。。。
|
![]() |
4
2
我一直在使用TypeMock,并且发现它是一个非常强大的工具,可以提高单元测试的覆盖率。这是因为我使用SharePoint,只有TypeMock允许我模拟SharePoint类——因为它们是具体的类而不是接口。 使用RhinoMock、Moq、NUNit等不可能模拟SharePoint类,因为(我相信)它们需要接口来模拟对象,而不是能够模拟实际的具体类。 如果您的代码确实使用了很多接口,并且您不需要模拟具体的类,那么TypeMock有点贵,但是对于您获得的功能来说,它是值得的。 |
![]() |
Phil Gunning · 使用嵌套函数更改进行模拟测试 3 年前 |
![]() |
Korr · 如何用Jest模拟组件测试中服务的功能 3 年前 |
![]() |
Jordan Lee · 在另一个类中使用实例方法作为装饰器 7 年前 |
![]() |
user2350138 · 为WireMock构建Java项目 7 年前 |
|
user8584384 · 单元测试不起作用,因为导入的文件作为输入 7 年前 |
![]() |
Vino · 如何模拟Python类的对象? 7 年前 |
![]() |
Enrico · .NET核心ASP。带有会话和测试的NET控制器 7 年前 |