我正在使用moq并想模拟一个接受out参数的方法:
protected void GetDataRow(string id, out DataRow dataRow)
Run Code Online (Sandbox Code Playgroud)
这是我试过的:
dataMock.Protected().Setup("GetDataRow", ItExpr.IsAny<string>(), ItExpr.IsAny<DataRow>());
Run Code Online (Sandbox Code Playgroud)
但是,它返回:
System.ArgumentException : Member DataManager.GetDataRow does not exist.
Run Code Online (Sandbox Code Playgroud)
如果我不改变dataRow参数out,一切都按预期工作.
在这种情况下我应该如何创建模拟?
你不能使用IsAny<DataRow>out参数.而不是IsAny<DataRow>你可以创建局部DataRow变量并将其传递给mock.稍后调用mock将返回dataRow,因此您可以使用它来验证测试期望.
DataRow dataRow = new DataRow();
dataMock.Protected().Setup("GetDataRow", ItExpr.IsAny<string>(), out dataRow);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
873 次 |
| 最近记录: |