我有一个要尝试测试的“ GetMemberEvents”方法。我正在使用Moq 4.10.1
在此“ GetMemberEvents”方法中,我必须调用存储库方法。我需要在此存储库方法中使用Moq才能继续在“ GetMemberEvents”中进行测试。
如果一切正常,并将内容呈现到输出变量“ _salaries”中,则AreThereConfiguredValues存储库方法返回true。 我需要填充的_salaries变量,才能继续“ GetMemberEvents”方法中的逻辑测试。
我在“ GetMemberEvents”的测试方法中编写了以下代码:
_config.Setup(x => x.AreThereConfiguredValues(It.IsAny<IConfigRepository>(), out _salaries)).Returns(true);
存储库方法具有以下签名:
bool AreThereConfiguredValues(IConfigRepository storage, out (int MemberId, double Value)[] salaries)
如何使变量_salaries填充有预定义的列表?类型:
_salaries = new (int MemberId, double Value)[2];
_salaries[0] = (552, 25399.9D);
_salaries[1] = (6167, 15707.9D);
答案 0 :(得分:0)
如this回答中所述,您可以在方法中模拟out
参数。因此,您的代码应该像这样;
_salaries = new (int MemberId, double Value)[2];
_salaries[0] = (552, 25399.9D);
_salaries[1] = (6167, 15707.9D);
_config.Setup(x => x.AreThereConfiguredValues(It.IsAny<IConfigRepository>(), out _salaries)).Returns(true);