单元测试c#时如何moq一个func参数

时间:2014-03-12 11:54:06

标签: c# unit-testing moq

我试图写一些测试,但我不知道如何处理设置我的moq模拟的参数。任何人都可以建议我如何正确完成这行代码? 非常感谢,

我的moq代码行

enter image description here

参数的类型如下所示,退货(...),我不知道如何处理。

参数intellisense

enter image description here

下面显示了我尝试移出的方法。

方法定义

public static async Task<CommandResult> SendSupportAsync(this IBus bus, Command command, bool withLogging = true)

更新

我已经尝试了这个建议,我添加了模拟对象并设置了返回但是编译器给出了以下错误:

An expression tree may not contain a call or invocation that uses optional arguments

1 个答案:

答案 0 :(得分:0)

如果要模拟返回值,则可以为其创建模拟

var resultMock = new Mock<Task<CommandResult>>();

然后设置你的模拟对象,你就像

一样返回它
bus.Setup(x=>c.SendSupportAsync(new TagCommand(ID, MID))).Returns(resultMock.object);

如果您不想模拟结果,那么您可以创建一个实例并像

一样返回它
bus.Setup(x=>c.SendSupportAsync(new TagCommand(ID, MID))).Returns(objCommandResult);