gpt4 book ai didi

unit-testing - 非虚方法不能被拦截

转载 作者:行者123 更新时间:2023-12-04 23:49:23 25 4
gpt4 key购买 nike

我是 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 检查该方法是否被调用。

最佳答案

不幸的是,你的标题说明了一切。如“What members can be overridden?”下的文档中所述,不能伪造、配置或拦截非虚拟成员。

除非您将成员设为虚拟(或将其提升为界面并伪造界面或类似的东西),否则 FakeItEasy 无法为您做任何事情。

关于unit-testing - 非虚方法不能被拦截,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26373656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com