2014-10-15 3 views
2

Я новичок в FakeItEasy и попытаюсь решить проблему.Не виртуальные методы не могут быть перехвачены

У меня есть класс

public class Events 
{ 
public List<Events> SaveEvents() 
{ 
// Call to repository and return 1(success) or -1(fail) 
//If the repository return 1 then need to make another call to save the action in db 
//Sample Code here 
    AuditLogService log = new AuditLogService(); 
    log.CallLog(); 
} 
} 

Вот код теста:

[TestMethod] 
    public void EventValidation() 
    { 
     //Arrange   

     var Fakeevents = A.Fake<Events>(); 
     var log = A.Fake<AuditLogService>(); 
     var _EventsController = new EventsController(Fakeevents); 
     _EventsController.SaveEvents(); 
     A.CallTo(
      () => Fakeevents.SaveEvents().Retunr(1).AssignsOutAndRefParameters(status) 
     A.CallTo(
      () => log.CallLog()).MustHaveHappened(Repeated.AtLeast.Once); 
    } 
I am getting error like "Non virtual methods can not be intercepted" 

Я хочу, чтобы проверить, является ли метод Calllog вызывается после успеха или нет.

Может кто-нибудь, пожалуйста, помогите мне в этом.

У меня есть метод и внутри метода, я инициирую другой класс и вызывая метод класса. Я хочу проверить из fakeItEasy, вызван ли метод.

ответ

5

К сожалению, в вашем названии говорится все. Не виртуальные участники не могут быть подделаны, настроены или перехвачены, как указано в документации в разделе «What members can be overridden?».

Нет ничего, что FakeItEasy может сделать для вас, если вы не сделаете элемент виртуальным (или продвиньте его до интерфейса и подделайте интерфейс или что-то подобное).

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

  • Нет связанных вопросов^_^