gpt4 book ai didi

c# - 最小起订量返回返回空

转载 作者:行者123 更新时间:2023-11-30 23:13:21 26 4
gpt4 key购买 nike

我目前正在开发我的测试项目,以相同的方式测试我所有的领域实体。因此,我创建了一个基类,它将被我所有的测试类继承,以确保它们共享相同的行为。

除了 GetByPrimaryKey 之外,我的所有方法都工作正常,它在应该返回我的类型的实例时返回 null。

基类的实现:

[TestClass]
public abstract class RepositoryTestBase<E, C>
where E : EntityBase
where C : IDBContext
{
protected E MockedEntity;

protected IRepository<E, C> Repository { get { return _mockedRepository.Object; } }

private Mock<IRepository<E, C>> _mockedRepository;

[TestInitialize]
public void Init()
{
MockedEntity = System.Activator.CreateInstance<E>();

_mockedRepository = new Mock<IRepository<E, C>>();

_mockedRepository.Setup(f => f.Add(MockedEntity)).Callback(() => { MockedEntity.Id = 1; });

_mockedRepository.Setup(f => f.GetByPrimaryKey(MockedEntity.Id)).Returns(MockedEntity);

_mockedRepository.Setup(f => f.Update(MockedEntity)).Callback(() => { MockedEntity.AlteradoEm = DateTime.Now; });

_mockedRepository.Setup(f => f.Remove(MockedEntity)).Callback(() => { MockedEntity.Deleted = true; });
}
}

如何让 Returns() 方法返回一个对象而不是返回 null?为什么它返回 null?提前致谢。

最佳答案

因为您只有一个 MockedObject,所以您并不真正关心模拟存储库设置中的输入参数。

因此,您可以执行以下操作:

_mockedRepository.Setup(f => f.GetByPrimaryId(It.IsAny<int>()).Returns(MockedEntity);

实体 key 的类型在哪里(或“GetByPrimaryId”期望的任何类型)

关于c# - 最小起订量返回返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43670747/

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