У меня проблемы с разработкой способа создания Shim для метода расширения.
У меня есть метод расширения в моей сборке "MJH.Extensions.dll" следующим образом: (очевидно, это не то, что делает метод REAL. Я упростил его для этого примера).
namespace MJH.Extensions {
public static class ListItemExtensions {
public static string foo(this Microsoft.SharePoint.ListItem item) {
return string.Empty;
}
}
}
Конечно, вы можете легко использовать это в коде ..
using Microsoft.SharePoint.Client;
using MJH.Extensions;
...
ListItem item = new ListItem();
item.foo(); // returns empty string
Я пытаюсь использовать этот метод для модульных тестов ... но не могу ради жизнивыяснить, как это сделать.
Я добавил сборку "Fakes" для моей собственной сборки MJH, которая включает статический класс "ListItemExtensions".
Я также пытался добавить "Подделка "сборка для сборки" Microsoft.SharePoint.Client "тоже.
(и все перестановки).
using Microsoft.SharePoint.Client;
using MJH.Extensions;
using Microsoft.QualityTools.Testing.Fakes;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace MJH.Tests {
[TestClass]
public class MyTests {
[TestMethod]
public void TestSample() {
using(ShimsContext()) {
// complains that "ShimListItem.AllInstances" does not contain a definition for "foo"
Microsoft.SharePoint.Client.Fakes.ShimListItem.AllInstances.foo () => {
return "something else";
}
}
}
}
}