嗨,我想创建一个模拟对象,每次调用 GetPath 方法时,我都会对其进行迭代。这是我的单元测试代码:
string fileSharePath = "/fileSharePath/";
int i = 0;
m_FileShareDocumentPathProvider.Setup(p => p.GetPath(It.IsAny<IFileShareDocument>()))
.Callback(() =>
{
i++;
fileSharePath += i;
})
.Returns(fileSharePath);
这是在 getPath 中调用的代码:
foreach (var document in documents)
{
string filePath = GetFilePath(document);
fileSharePaths.Add(filePath);
documentsDictionary.Add(document, filePath);
}
private string GetFilePath(IFileShareDocument document)
{
var fileShareDocumentPathProvider = m_FileShareDocumentPathProviderFactory.GetFilePathProvider(document);
var filePath = fileShareDocumentPathProvider.GetPath(document);
return filePath;
}
在调试时,我注意到 fileSharePath 的值没有按预期改变,它保持不变。
我究竟做错了什么?
编辑:
m_FileShareDocumentPathProviderFactory.Setup(f => f.GetFilePathProvider(It.IsAny<IFileShareDocument>()))
.Returns(m_FileShareDocumentPathProvider.Object);