我是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检查是否调用该方法。
答案 0 :(得分:5)
不幸的是,你的头衔就是这么说的。非虚拟成员不能伪造,配置或拦截,如“What members can be overridden?”下的文档中所述。
FakeItEasy没有什么可以为你做的,除非你将会员虚拟化(或将其推广到界面并伪造界面或类似的东西)。