我正在尝试设置一个将运行的方法:
dataAccess.Setup(x => x.GetCars(It.IsAny<CarFilter>()));
好的,所以我说的是在方法GetCars
传递任何CarFilter
类型的对象时设置它。
我想更具体一点。
我希望这样做,以便在CarFilter
CarFilter
上的属性传递任何Color = "Red"
类型的对象时进行设置。
有人知道如何写这个吗?
答案 0 :(得分:1)
您可以使用It.Is(...)
为比赛添加条件public class Car {
public string Color { get; set; }
}
public interface IFoo {
void DoIt(Car car);
}
[TestMethod]
public void PassesWhenRed() {
var mockFoo = new Mock<IFoo>();
var redCar = new Car { Color = "Red" };
mockFoo.Object.DoIt(redCar);
mockFoo.Verify(mk=>mk.DoIt(It.Is<Car>(car => car.Color == "Red"))); // Passes
}
[TestMethod]
public void FailsWhenNotRed() {
var mockFoo = new Mock<IFoo>();
var blueCar = new Car { Color = "Blue" };
mockFoo.Object.DoIt(blueCar);
mockFoo.Verify(mk=>mk.DoIt(It.Is<Car>(car => car.Color == "Red"))); // Fails
}
答案 1 :(得分:1)
结束需要:
dataAccess.Setup(x => x.GetCars(It.Is<CarFilter>(z => z.Color == "Red")));