Это кажется довольно простой проблемой, но я не могу найти ключевые слова для выполнения моих поисков.moqing static method call to C# library class
Я пытаюсь выполнить тестирование, издеваясь над всеми объектами в этом вызове метода. Я могу сделать так, чтобы все мои собственные творения для этого, кроме одного:
public void MyFunc(MyVarClass myVar)
{
Image picture;
...
picture = Image.FromStream(new MemoryStream(myVar.ImageStream));
...
}
FromStream статический вызов из класса Image (часть C#). Итак, как я могу реорганизовать свой код, чтобы издеваться над этим, потому что я действительно не хочу предоставлять поток изображений для модульного теста.
Я думаю, что, как обертывание идеи интерфейса, это решение не очень хорошо масштабируется, если я должен иметь несколько экземпляров статических вызовов через свой код. Мне нужно было бы создать функцию для каждого статического вызова. Не существует способа измакать статические методы из класса библиотеки? – Joe
Вам нужно было бы создать свойство для разных статических методов, поскольку вы могли бы повторно использовать их. Я считаю, что TypeMock может издеваться над статическими методами, используя некоторое переплетение IL, но оно не является бесплатным. Исключающий код, подлежащий тестированию, может занять довольно много работы на C#, я боюсь. – tarn
После некоторых мыслей, предлагаемые интерфейсы и функциональные решения были беспорядочными, но это решение функций занимало меньше строк, чем создание нового интерфейса и класса для просто издевательства над одной статической функцией. Поэтому я пойду с этим. Спасибо за ответы на все вопросы. – Joe