【问题标题】:Mocking method that returns properties返回属性的模拟方法
【发布时间】:2020-07-07 08:11:42
【问题描述】:

如何在返回属性列表的方法上模拟属性。

public class Data
{
  public string Property1 {get: set;}
  public string Property2 {get: set;}
  public string Property3 {get: set;}
}

public Data GetData(bool paramVal){
  Data myData = new Data();

  myData.Property1 = "Value1",
  myData.Property2 = "Value2",
  myData.Property3 = "Value3"

  return myData
}

如何在此方法上设置我的模拟,以便我可以设置属性中的值?

我尝试了什么:

MyDataBo = new Mock<IDataBo>`(); //(this is injected into my test class as a dependency)

MyDataBo.Setup(x => x.GetData(It.IsAny<bool>()).Property1).Returns("Value");`

它可以编译,但在调试我的测试时出现错误:

System.NotSupportedException: 不支持快递...

如何模拟Property1 或所有属性?

【问题讨论】:

标签: c# unit-testing moq


【解决方案1】:

在这种情况下需要Data 类的实际实例。

Data myFakeData = new Data() {
    Property1 = "Value1",
    Property2 = "Value2",
    Property3 = "Value3"
};

var MyDataBo = new Mock<IDataBo>();

MyDataBo
    .Setup(_ => _.GetData(It.IsAny<bool>()))
    .Returns(myFakeData);

当被模拟的成员被调用时,模拟设置返回虚假数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多