jeudi 25 février 2016

How can I test for calls ignoring params arguments in NSubstitute?

I have code which looks like:

eventPublisher.Publish(new SpecificEvent(stuff),
                        EventStreams.Stream1,
                        EventStreams.Stream2);

which is calling a method defined as :

Publish<T>(T eventToPublish, params EventStream[] streams) where T : IEvent;

in something I want to test. This event publication is the most important thing to happen in what I want to test, but I am not interested in testing which event streams it publishes to. How can I make a substitute in NSubstitute to test that this is called with an appropriate event, without concerning myself with the params? Thus far, I have:

eventPublisher.Received(1).Publish(Arg.Any<SpecificEvent>());

This, of course, does not match the call with two streams. Is there a way to match a params argument using NSubstitute, ignoring the number of parameters passed in?

Aucun commentaire:

Enregistrer un commentaire