模拟一个班级的成员但不是班级

时间:2014-07-28 09:35:45

标签: c# unit-testing mocking moq

假设我有一个这样的课程:

public class person
{
    public string PersonName { get; set; }
    public Car PersonCar { get; set; }
}

和Car类是这样的:

public class Car
{
    public bool CanStart { get; set; }
}

现在在我的测试中我正在使用Person类,但是我需要模拟Person类的Car成员,并且如果调用CanStart则总是返回true。这可能吗?

2 个答案:

答案 0 :(得分:0)

你可以用这个:

var person = new Person();
var mockCar = new Mock<Car>();
mockCar.SetupGet(c => c.CanStart).Returns(true);

person.Car = mockCar.Object;

答案 1 :(得分:0)

如果您希望CanStart始终返回true,为什么要嘲笑它?你可以这样做:

var person = new Person
{
    PersonCar = new Car
    {
        CanStart = true
    }
};