gpt4 book ai didi

c# - 类的模拟 Func 属性

转载 作者:行者123 更新时间:2023-11-30 22:44:31 25 4
gpt4 key购买 nike

我的一个存储库类(比如 PersonRepo)有一个委托(delegate)作为它的属性,就像这样

private readonly Func<INameRepo> _nameRepo;

除此之外,它由一个类继承,该类本身需要一个对象(比如 session )。

因此,当我在测试中初始化它时,我会做类似的事情

var funcNameRepo=autoMock.Mock<Func<INameRepo>>();
_personRepo= new PersonRepo(session,funcNameRepo.Object);

但是当我运行这个测试时,我得到了以下错误:

Unable to cast object of type 'System.Func`1[Repositories.Interfaces.INameRepo]' to type Moq.IMocked`1[System.Func`1[Repositories.Interfaces.INameRepo]]'.

你认为我在这里做错了什么。请帮我。

最佳答案

为什么要模拟 Func<INameRepo> ?如果你想模拟 INameRepo ,为 INameRepo 创建一个模拟并将其传递给您的 PersonRepo通过 lambda(将是 Func<INameRepo>):

var nameRepo = autoMock.Mock<INameRepo>();
_personRepo = new PersonRepo(session, () => nameRepo.Object);

关于c# - 类的模拟 Func 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3398734/

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