0
我有一個模擬對象ttLoc
爲ILocation
。我已將其狀態值設置爲LocationState.Available
。 我有一個名爲UpdateLocationState
的方法,它將更新我正在編寫測試用例的狀態。 當狀態更新時引發事件。如何在事件發生時更改Moq對象值
當事件發生時,我想更新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);
已嘗試此答案http://stackoverflow.com/questions/37286783/how-do-i-raise-an-event-when-a-method-is-called-using-moq –
提供[mcve]可以用來正確理解問題。顯示測試中的方法,它如何與模擬進行交互以及所需的行爲。目前還不完全清楚代碼要做什麼。 – Nkosi
@Nkosi我的問題幾乎類似於http://stackoverflow.com/questions/36761339/moq-mock-void-method-that-changes-a-field-value在這裏我的問題是我無法創建模擬LocationService來設置瞭解@reddy的數據 – reddy