Насмешливый метод, который возвращает свойства - PullRequest
1 голос
/ 26 марта 2020

Как бы я go смоделировал свойство в методе, который возвращает список свойств.

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: Unsupported express ...

Как мне высмеять Property1 или все свойства?

1 Ответ

1 голос
/ 26 марта 2020

В этом случае необходим фактический экземпляр класса Data.

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

var MyDataBo = new Mock<IDataBo>();

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

И фиктивная установка для возврата поддельных данных при вызове имитируемого члена.

...