Mock<IEventAggregator> mockEventAggregator; Mock<MyEvent> mockEvent; mockEventAggregator.Setup(e => e.GetEvent<MyEvent>()).Returns(mockEvent.Object); // Get a copy of the callback so we can "Publish" the data Action<MyEventArgs> callback = null; mockEvent.Setup( p => p.Subscribe( It.IsAny<Action<MyEventArgs>>(), It.IsAny<ThreadOption>(), It.IsAny<bool>(), It.IsAny<Predicate<MyEventArgs>>())) .Callback<Action<MyEventArgs>, ThreadOption, bool, Predicate<MyEventArgs>>( (e, t, b, a) => callback = e); // Do what you need to do to get it to subscribe // Callback should now contain the callback to your event handler // Which will allow you to invoke the callback on the test's thread // instead of the UI thread callback.Invoke(new MyEventArgs(someObject)); // Assert