我有ttLoc
的模拟对象ILocation
。我已将其状态值设置为LocationState.Available
。
我有一个名为UpdateLocationState
的方法,它将更新我正在编写测试用例的状态。
更新状态时会引发事件。
举起活动时,我想将ttLoc.Object.State
更新为LocationState.Reserved
。
我怎样才能做到这一点?
var ttLoc = new Mock<ILocation>();
ttLoc.Setup(loc => loc.LocationId).Returns("TestLocation");
ttLoc.Setup(state => state.State).Returns(LocationState.Available);
this.ManagerMock.Setup(d => d.SetLocationState(It.IsAny<ILocation>(), It.IsAny<LocationState>())).Raises(f => f.LocationStateChangedEvent += null, new EventArgs<LocationState>(LocationState.Available));
var result = LocationService.UpdateLocationState(ttLoc.Object, LocationState.Reserved);
答案 0 :(得分:-1)
我认为您可以使用SetupAllProperties()函数执行此操作。看到: How to assign values to properties in moq?
然后,您可以将新状态分配给moq对象属性。