Я пытаюсь реорганизовать свой код, чтобы выполнить модульное тестирование с использованием fakexrmeasy.
Как часть предложенного рефактора, упомянутого здесь , я попытался передать IOrganizationService во все мои классы и методы. Тем не менее, некоторые из моих классов используют переменные и методы, которых нет у IOrganizationService, например Timeout. Я пытаюсь найти способ рефакторинга для использования IOrganizationService без потери функциональности.
Вот как это существует до рефакторинга.
class testClass () {
public void testMethod(OrganizationServiceProxy service) {
service.Timeout = new TimeSpan(0, 15, 0);
}
}
Это после рефакторинга.
Я попытался привести IOrganizationService к OrganizationServiceProxy, но поддельный контекст службы не может обработать это приведение. Исключение выдается.
class testClass () {
public void testMethod(IOrganizationService service) {
var serviceProxy = (OrganizationServiceProxy) service; //This breaks when given a fake context
service.Timeout = new TimeSpan(0, 15, 0);
}
}
Я пытался использовать IOrganizationServiceFactory, как предложено в в этом посте . Проблема заключается в том, что factory.CreateOrganizationService () создает IOrganizationService, а не OrganizationSeriviceProxy.
Как я могу реорганизовать использование IOrganizationService вместо OrganizationServiceProxy без потери функциональности? Я предполагаю, что мне, возможно, придется каким-то образом реализовать IOrganizationService в качестве OrganizationServiceProxy.