À l'aide de Moq pour vérifier les appels sont effectués dans l'ordre correct

J'ai besoin de tester la méthode suivante:

CreateOutput(IWriter writer)
{
    writer.Write(type);
    writer.Write(id);
    writer.Write(sender);

    //many more Write()s...
}

J'ai créé une Moq avais IWriter et je veux m'assurer que le Write() méthodes sont appelées dans le bon ordre.

J'ai le test code suivant:

var mockWriter = new Mock<IWriter>(MockBehavior.Strict);
var sequence = new MockSequence();
mockWriter.InSequence(sequence).Setup(x => x.Write(expectedType));
mockWriter.InSequence(sequence).Setup(x => x.Write(expectedId));
mockWriter.InSequence(sequence).Setup(x => x.Write(expectedSender));

Cependant, le deuxième appel à Write() dans CreateOutput() (pour écrire le id valeur) renvoie une MockException avec le message "IWriter.Write() invocation a échoué avec des simulations de comportement Strictes. Toutes les invocations sur la maquette doit avoir un programme d'installation correspondante.".

Je suis également trouver qu'il est difficile de trouver de façon définitive, la mise à jour de la documentation et des exemples de Moq séquences.

Je fais quelque chose de mal, ou je ne peux pas définir une séquence en utilisant la même méthode?
Si non, est-il une autre solution que je peux utiliser (de préférence à l'aide Moq/NUnit)?

InformationsquelleAutor g t | 2012-05-15