模拟使用输出参数的函数

时间:2012-07-19 07:30:53

标签: c# unit-testing moq

我有一个使用out参数的函数。我怎么能模仿这个功能呢?

我的功能是:

GetProperties(out string name, out string path, out string extension);

在我的原始代码中,我这样做:

string Name;
string Path;
string Extension;
MyObject.GetProperties(out Name, out Path, out Extension);

现在,我怎么能嘲笑这个?

1 个答案:

答案 0 :(得分:22)

您应该在调用方法之前指定变量的值,如下所示:

string Name = "name";
string Path = "path";
string Extension = "extension";
mock.Setup(item => item.GetProperties(out Name, out Path, out Extension))
    .Returns(someReturnValue);

虽然我更希望在返回类型中返回这些值,而不是使用这么多的out参数。