測試方法調用順序目前我有:如何使用起訂量
[Test]
public void DrawDrawsAllScreensInTheReverseOrderOfTheStack() {
// Arrange.
var screenMockOne = new Mock<IScreen>();
var screenMockTwo = new Mock<IScreen>();
var screens = new List<IScreen>();
screens.Add(screenMockOne.Object);
screens.Add(screenMockTwo.Object);
var stackOfScreensMock = new Mock<IScreenStack>();
stackOfScreensMock.Setup(s => s.ToArray()).Returns(screens.ToArray());
var screenManager = new ScreenManager(stackOfScreensMock.Object);
// Act.
screenManager.Draw(new Mock<GameTime>().Object);
// Assert.
screenMockOne.Verify(smo => smo.Draw(It.IsAny<GameTime>()), Times.Once(),
"Draw was not called on screen mock one");
screenMockTwo.Verify(smo => smo.Draw(It.IsAny<GameTime>()), Times.Once(),
"Draw was not called on screen mock two");
}
但在我畫的生產代碼我對象的順序並不重要。我可以先做一個,或者兩個都沒關係。不過,它應該很重要,因爲抽籤順序很重要。
你如何(使用Moq)確保按特定順序調用方法?
編輯
我擺脫了該測試。繪製方法已從我的單元測試中刪除。我只需要手動測試它的工作。順序的逆轉被分成了一個單獨的測試類,它被測試,所以它並不全是壞的。
感謝您提供關於他們正在查看的功能的鏈接。我當然希望它很快就會被添加,非常方便。
看看這個答案還有:http://stackoverflow.com/a/39692781/205859 – 2016-09-25 23:28:36