模拟使用输出参数的函数

fhn*_*eer 15 c# unit-testing moq

我有一个使用输出参数的函数.我怎么能模仿这个功能?

我的功能是:

GetProperties(out string name, out string path, out string extension);
Run Code Online (Sandbox Code Playgroud)

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

string Name;
string Path;
string Extension;
MyObject.GetProperties(out Name, out Path, out Extension);
Run Code Online (Sandbox Code Playgroud)

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

Ufu*_*arı 23

你应该在调用方法之前分配变量的值,如下所示:

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

虽然我更喜欢在返回类型中返回这些值,而不是使用这么多out参数.