如何模拟/注入一个getter到被测系统?

时间:2016-03-06 13:10:58

标签: c# .net visual-studio moq

Mark为相关的question提供了优雅的答案。

我的班级有一个只读属性:

public class myclass
{
    ...
    public virtual string Devicelocation => Message.Message.Items[0].ToString();
    ...
    public someMethod()
    {
        if(Devicelocation=="YourMom")
        {
            //dostuff
        }
        else
        {
            //dootherstuff
        }
    }
}

我想执行 someMethod(),假设Devicelocation等同于什么。

如何在Devicelocation中模拟或注入值?

1 个答案:

答案 0 :(得分:1)

您可以像这样设置 Devicelocation

var stub = new Mock<myclass>();
stub.SetupGet(x => x.Devicelocation).Returns("YourMom");

stub.Object.Devicelocation will now return "YourMom".

更新

stub.Object.someMethod();