【问题标题】:TypeMock Faking static method in static class静态类中的 TypeMock 伪造静态方法
【发布时间】:2015-02-05 22:18:29
【问题描述】:

使用 TypeMock 隔离器...

我试图模拟一个静态类内部的静态方法调用,但它一直在调用原始代码。

我遇到了this 线程,我正在按照他们的建议做,但仍然不走运。

我尝试了两种不同的方法:

1:

Isolate.Fake.StaticMethods(typeof(QueueDAO), Members.ReturnRecursiveFakes);

2:

Isolate.WhenCalled(() => QueueDAO.UpdateQueueStatus(queueCmtId, CmtQueueStatus.Error)).IgnoreCall();

这两种解决方案都不起作用。和传入的枚举有关系吗?

【问题讨论】:

  • 从阅读该线程来看,您实际上必须同时使用 1 和 2 而不是单独使用。你试过了吗?
  • 我认为它实际上是相反的。您不必同时使用这两个调用(这是一个多余的调用)。无论如何,我尝试过,它仍然给了我同样的错误。

标签: c# .net unit-testing typemock-isolator


【解决方案1】:

两者都应该工作。默认情况下,参数被忽略,所以第二个也应该起作用。 测试类或方法上是否有[Isolated]?

您可能有另一种隔离方法来覆盖这个方法。 请看一个隔离updatequeuestatus然后直接调用它的简单测试是否有效? 如果没有打开日志记录并将它们发送到 support (at) typemock.com 进行分析。

【讨论】:

    【解决方案2】:

    作为typeof传入的对象应该是包含静态方法的类,而不是对象本身。

    Isolate.Fake.StaticMethods(typeof(QueueDAO));

    QueueDAO 对象是否包含静态方法,或者是否有扩展类?

    【讨论】:

      猜你喜欢
      • 2020-02-17
      • 2011-01-17
      • 2011-03-13
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 2012-06-24
      相关资源
      最近更新 更多