Установить свойства для объекта ShimFileCreationInformation
Я пишу несколько тестовых случаев, используя фальшивый фреймворк. Я использую объект ShimFileCreationInformation
от Microsoft.SharePoint.Client.Fakes
Пространство имен. Теперь я передаю этот объект в функцию. Внутри функции я пытаюсь присвоить значение свойству Url.
fileCreationInformation.Url = value;
Но даже если значение присутствует, для URL ничего не назначается должным образом, и оно остается нулевым. Есть ли решение этой проблемы? Что еще хуже, нет документации на ShimFileCreationInformation
объект.
Пример кода:
ShimFileCreationInformation fileCreationInformation = new ShimFileCreationInformation();
SomeFunction(fileCreationInformation);
SomeFunction:
public void SomeFunction(FileCreationInformation fileCreationInformation)
{
fileCreationInformation.Url = value; // This statement had so effect on fileCreationInformation.Url
}
1 ответ
fileCreationInformation.Url = value;
Установка значения напрямую, как указано выше, не будет работать, так как вы устанавливаете значение Shim, а не фактический объект. Вам нужно использовать ShimFileCreationInformation.AllInstances.UrlGet
поэтому всякий раз, когда вызывается Url Get, он возвращает указанное вами значение.
Ваш код должен выглядеть примерно так:
[TestMethod]
public void derived_test()
{
using (ShimsContext.Create())
{
ShimFileCreationInformation fileCreationInformation = new ShimFileCreationInformation();
ShimFileCreationInformation.AllInstances.UrlGet = (instance) => value;
SomeFunction(fileCreationInformation);
}
}
public void SomeFunction(FileCreationInformation fileCreationInformation)
{
var url = fileCreationInformation.Url;
// Check url variable above. It should be set to value
fileCreationInformation.Url = value; // This statement will not work since you are trying to set the value of the Shim and you need to use `ShimFileCreationInformation.AllInstances.UrlGet` to set property value for Shims
}