J'ai implémenté une interface ITimer parce que je veux écrire quelques tests autour d'une classe que je construis qui utilise la classe System.Timers.Timer.Comment définir l'attente d'un événement lors de l'appel d'une méthode?
Donc la séquence se passe quand j'appelle Timer.Start() quelque temps plus tard, je m'attends à ce que l'événement Elapsed se produise.
Cependant, pour mon test, je veux mocker ce comportement, car je ne veux pas attendre un certain temps pour que l'événement se produise (je veux que cela se produise immédiatement).
J'essayais de simuler la méthode Start et de l'augmenter simplement, mais je ne sais pas comment y parvenir.
C'est un peu ce que j'ai jusqu'à présent:
var _mock = MockRepository.GenerateMock<ITimer>();
//this is what I'd like to do but it doesn't work
Expect
.Call(_mock.Start())
.WhenCalled(() =>
{
if (_mock.Elapsed != null)
_mock.Elapsed();
});
Le problème que je reçois est le compilateur me dit que l'événement ne peut être utilisé dans le cadre d'un + = ou - = opération.
Il doit y avoir un moyen de le faire en utilisant Rhino Mocks, est-ce que quelqu'un sait comment faire?