簡體   English   中英

如何為在MOQ C#中使用對象實例調用的方法創建模擬?

[英]How to create mock for method that is called using object instance in MOQ C#?

我為使用MOQ和NUnit進行測試的方法創建了Test。 要測試的方法將是使用該相應類的對象的另一種方法。 當我嘗試模擬被調用的方法時,我無法調用模擬的方法。 如何模擬此方法,因為我的測試方法正在使用其他所說的方法。 請幫我。

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


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

所以,我想這應該像這樣:

具有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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM