c# - 没有接口(interface)甚至没有虚拟方法的模拟类

标签 c#

<分区>

我想模拟一个类的特定方法,模拟时我面临的问题是该类没有任何接口(interface),而且该方法不是虚拟的。

任何人都可以建议任何其他方式来实现模拟。

任何帮助将不胜感激。 提前致谢

最佳答案

选项 1:TypeMock Isolator或类似的东西,它允许比普通模拟更深入地扰乱代码。

选项 2:(如果可能,首选)更改设计,例如通过引入一个接口(interface)并创建一个委托(delegate)实现,它只调用现有的测试不友好的类。然后,您可以依赖该接口(interface),在测试中模拟它,并委托(delegate)给生产的“真实”实现。

当然,这是假设您确实应该 mock 类。您不应该自动模拟您的代码使用的一切 - 我倾向于考虑模拟某些描述的“服务”,而我不会模拟(例如)List<T> .

关于c# - 没有接口(interface)甚至没有虚拟方法的模拟类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867855/

相关文章:

c# - asp.net aspx 的标记验证

c# - 如何在 MassTransit 3.0 中使用分散/聚集模式实现传奇

c# - 使用 EmptyDataTemplate 时如何删除 ASP.NET GridView 中的空行?

c# - 如何在 C#.net 中读取 Windows XP 中的事件查看器日志

c# - 存储指向方法参数的指针以供以后重用

c# - 如何在 ASP.NET Web 应用程序中显示错误消息

c# - IDictionary 分配快捷方式编译器功能或语言功能?

c# - Entity Framework 6.1 Code First MySql 实体跟踪在上下文中持续存在

c# - 为什么我不能在控制台应用程序中引用 System.Web.Extensions?

c# - 在 C# 中使用异常抛出。对性能有影响吗?