Как создать макет для метода, который вызывается с использованием экземпляра объекта в MOQ C #? - PullRequest
0 голосов
/ 03 января 2019

Я создал Test для метода, который тестируется с использованием MOQ & NUnit.Тестируемый метод будет другим методом, использующим объект этого соответствующего класса.Когда я пытаюсь смоделировать этот вызываемый метод, я не могу вызвать смоделированный метод.Как издеваться над этим методом, потому что мой метод тестирования использует другой метод.Пожалуйста, помогите мне в этом.

public DataSet ExecuteCondition()
{
  var ObjClass1 = new Class1();
  ....
  var result = ObjClass1.VerifyPrecondition(query);
  ....
}


public class Class1:IClass1
{
 public string VerifyPrecondition(string query)
 {
   ....
   return text;
 }
}

1 Ответ

0 голосов
/ 19 января 2019

Итак, я полагаю, это должно выглядеть так:

Класс с методом ExecuteCondition ():

public class DataClass
{
    private readonly IClass1 _class1;

    public DataClass(IClass1 class1)
    {
        _class1 = class1;   
    }

    public DataSet ExecuteCondition()
    {
            //....
        var result = _class1.VerifyPrecondition(query);
            //....
    }
}

Тест:

[Test]
public void Test()
{
    var mockClass1 = new Mock<IClass1>();
    mockClass1.Setup(x => x.VerifyPrecondition(It.IsAny<string>())).Returns("test");
    var dataClass = new DataClass(mockClass1.Object);

    dataClass.ExecuteCondition();

    //Assert
}
...