首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Moq模拟扩展方法?

如何使用Moq模拟扩展方法?
EN

Stack Overflow用户
提问于 2009-02-18 17:48:01
回答 6查看 78.9K关注 0票数 95

我正在写一个测试,它依赖于一个扩展方法的结果,但我不希望该扩展方法将来的失败也会破坏这个测试。模仿这一结果似乎是显而易见的选择,但Moq似乎没有提供一种覆盖静态方法(扩展方法的要求)的方法。Moq.Protected和Moq.Stub也有类似的想法,但它们似乎没有为这种情况提供任何东西。我是不是遗漏了什么,或者我应该以不同的方式来做这件事?

这里有一个简单的例子,它使用通常的"Invalid member on a non-overridable“失败。这是一个需要模拟扩展方法的坏例子,但它应该这样做。

代码语言:javascript
运行
复制
public class SomeType {
    int Id { get; set; }
}

var ListMock = new Mock<List<SomeType>>();
ListMock.Expect(l => l.FirstOrDefault(st => st.Id == 5))
        .Returns(new SomeType { Id = 5 });

对于任何可能建议我使用隔离器的TypeMock上瘾者,我很欣赏你的努力,因为看起来TypeMock可以蒙住眼睛喝醉了,但我们的预算不会很快增加。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/562129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档