【问题标题】:How to verify that there was no interaction with dependency in a test如何验证测试中没有与依赖项的交互
【发布时间】:2019-01-09 06:45:28
【问题描述】:

我希望我的测试能够验证不存在与依赖项的交互,而不仅仅是单个方法或属性。有没有办法轻松做到这一点?

在这里找到答案: What is the FakeItEasy equivalent of the Moq VerifyNoOtherCalls() method

【问题讨论】:

  • 使用null作为依赖?
  • @GabrielNegut:如果没有 null 签入方法,这将起作用。
  • 这就是为什么我们假设问题包含一些代码,显示您尝试过的内容以及您遇到的问题。
  • @RobinBennett 谢谢,您的评论让我找到了关于 SO 的答案 :)
  • @RobinBennett VerifyNoOtherCalls 是 Moq 方法,与 nunit 无关 ;)

标签: c# mocking xunit fakeiteasy


【解决方案1】:

使用 FakeItEasy,您可以为您的依赖项创建 strict mock,而无需定义任何方法/属性。

var foo = A.Fake<IFoo>(x => x.Strict());

任何访问foo 成员的尝试都将导致ExpectationException

【讨论】:

    【解决方案2】:

    加布里埃尔的回答很好。另一种选择,如果你更喜欢明确检查,它是这样的:

    A.CallTo(theDependency).MustNotHaveHappened();
    

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 1970-01-01
      • 2016-08-18
      • 2017-02-13
      • 2012-03-28
      • 2020-04-17
      • 1970-01-01
      • 2020-02-13
      相关资源
      最近更新 更多