作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发我的测试项目,以相同的方式测试我所有的领域实体。因此,我创建了一个基类,它将被我所有的测试类继承,以确保它们共享相同的行为。
除了 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/
我是一名优秀的程序员,十分优秀!