【问题标题】:Modify method logic MOQ [closed]修改方法逻辑 MOQ [关闭]
【发布时间】:2018-12-11 17:11:30
【问题描述】:

我是单元测试的新手,所以我的问题可能看起来很基础,对此表示歉意。

我想弄清楚 MOQ 中是否有这样的 API 可以帮助我修改方法逻辑。 我是说, 打电话时。我想将我的“计数”变量增加 1,然后调用该方法或执行其他操作,这并不重要。

还没有代码,这是一个原则问题。在 GitHub 上的 MOQ 文档中找不到它。

希望我说的很清楚,您可以帮助我。

谢谢!

【问题讨论】:

  • 您想使用最小起订量来更改您正在测试的代码吗?这听起来不对。你到底想测试什么?
  • 请提供一些代码来证明您的问题。另请参阅minimal reproducible example
  • 您不要修改测试方法的逻辑。您修改输入或环境数据并断言该方法按其应有的方式运行。如果您修改逻辑而不是数据,您的所有测试都是修改后的逻辑,而不是实际的测试方法。
  • 我不是开发人员,但我应该提供此信息。例如,在查看 Typemock 的文档后,我发现:
  • typemock.com/docs/… 如你所见,“DoInstead”做了我想要解释的事情

标签: c# unit-testing moq


【解决方案1】:

您不能“修改”方法逻辑本身,但可以完全替换它。

当您创建接口的模拟时,您并没有实例化该接口的特定具体类型。相反,您允许您的模拟框架创建该接口的“模拟”版本;一个对象,默认情况下没有功能,但不需要实例化。

最简单的方法是使用 Moq 的设置功能,这里有很好的解释:

https://github.com/Moq/moq4/wiki/Quickstart

【讨论】:

    猜你喜欢
    • 2018-07-30
    • 1970-01-01
    • 2016-04-28
    • 2013-09-21
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2013-03-15
    相关资源
    最近更新 更多