Привет, я создаю макетный объект, где каждый раз, когда вызывается метод GetPath, я получаю итерацию. Вот мой блок кода тестирования:Moq Значение обратного вызова не изменяется, когда обратный вызов вызван
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 не меняется, как и ожидалось, он остается тем же ,
Что я делаю неправильно?
EDIT:
m_FileShareDocumentPathProviderFactory.Setup(f => f.GetFilePathProvider(It.IsAny<IFileShareDocument>()))
.Returns(m_FileShareDocumentPathProvider.Object);
Вы настроили 'm_FileShareDocumentPathProviderFactory.GetFilePathProvider', чтобы фактически вернуть правильный mock-объект (' m_FileShareDocumentPathProvider')? – sloth
Да, я его настроил – aleczandru