<分区>
我想模拟一个类的特定方法,模拟时我面临的问题是该类没有任何接口(interface),而且该方法不是虚拟的。
任何人都可以建议任何其他方式来实现模拟。
任何帮助将不胜感激。 提前致谢
标签 c#
<分区>
我想模拟一个类的特定方法,模拟时我面临的问题是该类没有任何接口(interface),而且该方法不是虚拟的。
任何人都可以建议任何其他方式来实现模拟。
任何帮助将不胜感激。 提前致谢
最佳答案
选项 1:TypeMock Isolator或类似的东西,它允许比普通模拟更深入地扰乱代码。
选项 2:(如果可能,首选)更改设计,例如通过引入一个接口(interface)并创建一个委托(delegate)实现,它只调用现有的测试不友好的类。然后,您可以依赖该接口(interface),在测试中模拟它,并委托(delegate)给生产的“真实”实现。
当然,这是假设您确实应该 mock 类。您不应该自动模拟您的代码使用的一切 - 我倾向于考虑模拟某些描述的“服务”,而我不会模拟(例如)List<T>
.
关于c# - 没有接口(interface)甚至没有虚拟方法的模拟类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867855/
相关文章:
c# - 如何在 MassTransit 3.0 中使用分散/聚集模式实现传奇
c# - 使用 EmptyDataTemplate 时如何删除 ASP.NET GridView 中的空行?
c# - 如何在 C#.net 中读取 Windows XP 中的事件查看器日志
c# - 如何在 ASP.NET Web 应用程序中显示错误消息
c# - IDictionary 分配快捷方式编译器功能或语言功能?
c# - Entity Framework 6.1 Code First MySql 实体跟踪在上下文中持续存在