【问题标题】:Mocking the behaviour of operators in Moq C#在 Moq C# 中模拟运算符的行为
【发布时间】:2012-08-10 09:02:38
【问题描述】:

希望你一切顺利。

我正在使用 C# 中的 Moq 创建一些测试。我正在模拟的对象之一已覆盖 ==、> 和

有谁知道它是否可能,如果可能,如何...配置一个 Mock 对象来复制它。我问的原因是我试图注入一个模拟存根,因为我得到的一些遗留代码具有深层和肮脏的依赖关系。

感谢您的宝贵时间

谢谢

【问题讨论】:

    标签: c# mocking moq moq-3


    【解决方案1】:

    当您覆盖此类操作时,您还应该提供它们的命名等效项。如果您以这种方式重新编写代码,那么模拟它会更容易。

    public static bool operator ==(SomeType a, SomeType b)
    {
        return a.Equals(b);
    }
    
    public virtual bool Equals(SomeType b)
    {
       // yours logic here
       return base.Equals(b)
    }
    

    【讨论】:

    • 感谢您的意见。在这种情况下,我需要完全避免接触现有的代码,这让生活变得非常困难。这是出于商业原因,因为代码与安全相关并且经过验证等。编辑:原始开发人员在我发现的这个示例中提供了这些版本,尽管通常这是一个很好的答案。
    • 幸运的是,它是原始对象的编写方式,因此在这种情况下这将起作用。感谢您的宝贵时间。
    猜你喜欢
    • 2013-12-23
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 2014-04-11
    相关资源
    最近更新 更多