Для проекта я использую класс CompositeContainer структуры MEF. Теперь я хотел бы сделать модульный тест (с moq), который проверяет, вызван метод ComposeParts (который является методом расширения в AttributedModelServices).Тестирование с помощью Moq, если метод внешней библиотеки называется
Просто издевательство с помощью moq не работает, потому что метод не является виртуальным. Я нашел несколько способов сделать это, но все они заставляют меня менять класс CompositeContainer, чего я не могу сделать.
Есть ли способ в moq, чтобы проверить, вызывается ли не виртуальный метод внешней сторонней библиотеки?
Заранее благодарим за ваш ответ.
пример кода:
public void Load(string path, CompositionContainer container)
{
container.ComposeParts(this);
}
Здесь контейнер из MEF библиотеки и ComposeParts метод расширения в System.ComponentModel.Composition имен:
//
// Summary:
// Creates composable parts from an array of attributed objects and composes
// them in the specified composition container.
//
// Parameters:
// container:
// The composition container to perform composition in.
//
// attributedParts:
// An array of attributed objects to compose.
public static void ComposeParts(this CompositionContainer container, params object[] attributedParts);
Можете ли вы показать пример метода расширения, который вы вызываете? –
Вы пытаетесь проверить, если класс, который не принадлежит вам, вызывает метод? –
Возможно, вы тестируете неправильный фрагмент кода, возможно, вам следует проверить эффекты вызова этого метода в вашем приложении. –