【问题标题】:Check if mock setup returns string type检查模拟设置是否返回字符串类型
【发布时间】:2018-10-12 09:33:01
【问题描述】:

我希望能够检查模拟方法是否返回字符串类型而不是特定字符串。到目前为止,我得到了:

this.mockFoo.Setup(k => k.FooMethod(It.Is<string>(s => string.IsNullOrEmpty(s).Equals(false))));

我知道在Setup 之后有一个Returns() 方法可用。但是,它似乎想知道要返回的特定值。关键是我不想提供具体值,因为它不是测试中的案例。

我怎样才能做到这一点?

【问题讨论】:

  • FooMethod 的返回类型是什么?
  • 如果我理解正确,您想测试内部调用 FooMethod 的 BarMethod 吗?如果 BarMethod 将任何(非空)字符串传递给 FooMethod,则测试应该是绿色的?
  • FooMethod 的@Spotted 返回类型是 Task。我试过了:.Returns(() =&gt; Task.FromResult&lt;string&gt;("specificValue")) 但它要求返回特定的值。
  • @Georg Patscheider 我没有BarMethod

标签: c# unit-testing moq


【解决方案1】:

这不是 Mock 的用途。 Mock 是用来做特定事情的设置,但是当您想知道函数调用是否返回特定类型时,您必须对感兴趣的类型执行函数调用。

【讨论】:

  • 如果函数调用返回特定类型,则必须对感兴趣的类型执行函数调用。 @Bernhard Hiller 你能举个例子吗?
猜你喜欢
  • 1970-01-01
  • 2013-10-17
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 2015-03-05
  • 2020-10-06
  • 2012-04-05
相关资源
最近更新 更多