Al momento ho:Come prova Ordina chiamata di metodo con Moq
[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");
}
Ma l'ordine in cui traggo i miei oggetti nel codice di produzione non ha importanza. Potrei farne una prima o due, non importa. Tuttavia dovrebbe essere importante in quanto l'ordine di estrazione è importante.
In che modo (utilizzando Moq) i metodi vengono richiamati in un determinato ordine?
Modifica
mi sono liberato di quel test. Il metodo di estrazione è stato rimosso dai miei test unitari. Dovrò solo testare manualmente funziona. L'inversione dell'ordine è stata però inserita in una classe di test separata in cui è stata testata, quindi non è affatto male.
Grazie per il collegamento sulla funzione che stanno esaminando. Spero davvero che venga aggiunto presto, molto utile.
Date un'occhiata a questa risposta così: http://stackoverflow.com/a/39692781/205859 –