1

実行するメソッドをセットアップしようとしています:

dataAccess.Setup(x => x.GetCars(It.IsAny<CarFilter>()));

GetCarsわかりましたので、 type のオブジェクトが渡されたときにメソッドをセットアップするように言っていますCarFilter

これをもう少し具体的にしたいと思います。

CarFilterプロパティが on のときに任意のタイプのオブジェクトが渡されたときにセットアップされるようにしたいと思いますCarFilter Color = "Red"

これの書き方わかる人いますか?

4

2 に答える 2

1

最終的に必要なもの:

dataAccess.Setup(x => x.GetCars(It.Is<CarFilter>(z => z.Color == "Red")));
于 2012-09-02T22:24:08.187 に答える
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

}
于 2012-08-31T10:30:10.703 に答える