Я хочу MOQ вызов службы в методе, для которого я пишу методы тестирования единицы.Как выполнить вызов службы в методе, возвращающем объект абстрактного класса?
Например:
public void MethodUnderTest(data)
{
XYZService.ServiceMethod(data);
}
Указанный выше способ службы возвращает объект абстрактного класса (Допустим CLASSA). т.е.
public ClassA ServiceMethod(ClassA data)
{
//code
}
public abstract class ClassA
{
//Code
}
Теперь, если я пишу MOq для вышеуказанного испытания в тестовом классе, как:
_xyzService.setup(x => x.ServiceMethod(data)).Returns(?);
Если я пишу новый CLASSA() вместо ?, я не должен делать это как класс абстрактно!
Итак, что мне помещать в Return?
Если вы вернете все, что происходит от 'ClassA', это будет правильный подход. Просто создайте фиктивный 'public class ClassAB: ClassA'. – Fabio
@Fabio Цель mocking-framework заключается в том, чтобы * не * создавать все эти производные самостоятельно, а полагаться на фреймворк для создания экземпляров этих типов. – HimBromBeere
@HimBromBeere, мой комментарий состоял в том, что OP нужно вернуть только класс, полученный из класса ClassA. Как он создаст этот экземпляр, он не будет измеряться с точки зрения теста. Извините, я не пытался различить важность насмешливой рамки :) – Fabio