2015-10-09 3 views
0

У меня есть проект C# net и использование nunit для тестирования.Сделка и реализация интерфейса

У меня есть класс, называемый xyz, который имеет реализацию класса сеанса. Класс сеанса - это встроенный класс, который является частью dll, на который я ссылаюсь в своем проекте.

Мне нужно высмеять класс сеанса в моем тестовом проекте. Когда я пытаюсь высмеять класс сеанса, я получаю сообщение об ошибке, говорящее, что вы можете только высмеять переопределяемые методы или интерфейсы.

Итак, я подумал о реализации класса, который расширяет класс сеанса, а затем создает интерфейс для этого класса. Тогда я бы издевался над интерфейсом и вызывал методы базового класса. Это звучит как хорошее решение или у кого-то есть лучшие идеи?

ответ

0

Создайте интерфейс, скажем, ISessionService. Добавьте все методы, которые вам нужно высмеять в этом интерфейсе. Создайте класс SessionManager, который реализует этот интерфейс. В реализации этих методов вызывают фактические методы. Теперь вы можете издеваться над методами, используя интерфейс.

public class xyz : ISessionService 
    { 
     public string AddCustomer(AddCustomerRequest addCustomerRequest) 
     { 
      using (SessionService service = new SessionService()) 
      { 
       response = service.AddCustomer(addCustomerRequest); 
      } 
      return response; 
     } 
} 
+0

Нужно ли сначала наследовать базовый класс? – Tom

+0

Вам не нужно наследовать. При реализации вашего класса вы можете вызвать методы фактического сеансового обслуживания. Я обновил код. Надеюсь, поможет – Shetty

Смежные вопросы