如何为“使用注入接口方法更新方法中具体类的属性”创建起订量

问题描述 投票:0回答:1

我有一个实现接口的具体类

internal interface ITableAdapter
{
  int CustomFill(Dataset dataset, ...);
}

internal interface IEntityRetriever
{
  IEntity RetriveEntity();
}
internal class RetriveEntityById: IEntityRetriever
{
  private readonly EntityDataSet _entityDataSet = new EntityDataSet();
  private readonly ITableAdapter _tableAdapter;

  public RetriveEntityById(ITableAdapter tableAdapter, ...)
  {
    _tableAdatper = tableAdapter; 
    ...
  }

  public Entity RetriveEntity()
  {
    var EntityModel = RetriveEntityModel();
    ...
    return EntityModel.Entity;
  }

  private EntityDataSet RetriveEntityModel()
  {
    _tableAdapter.CustomFill(_entityDataSet, ...);
    return _entityDataSet;
  }
}

我正在尝试对此类进行单元测试,但无法弄清楚如何模拟填充具体类的私有属性的

CustomFill
方法的行为。

var adapter = new Mock<ITableAdapter>();
adapter.Setup(x=>x.CustomFill(It.IsAny<DataSet>(), ...)).Returns(1)
c# .net unit-testing testing moq
1个回答
0
投票

我最终在设置 lamda 函数的方法中编辑了私有属性

var adapter = new Mock<ITableAdapter>();
adapter.Setup(x=>x.CustomFill(It.IsAny<DataSet>(), ...))
   .Returns((Dataset ds, ..) => 
        {
            var row = ds.AddRow(...);
            return 1
        });
© www.soinside.com 2019 - 2024. All rights reserved.