public async Task Run() { foreach (var @event in Given()) { Aggregate ??= (TEventSourcedAggregate)Activator.CreateInstance(typeof(TEventSourcedAggregate), true) !; Aggregate.ApplyEvent(@event); } var services = Testing.GetServices(); ConfigureServices(services); var serviceProvider = services.BuildServiceProvider(); var mediator = serviceProvider.GetRequiredService <IMediator>(); try { await mediator.Send(When()); } catch (Exception e) { IsErrorExpected(e).Should().BeTrue(); return; } IsErrorExpected().Should().BeFalse(); Aggregate.Should().NotBeNull(); Aggregate !.UncommittedEvents.Should().BeEquivalentTo(Then(), options => options.RespectingRuntimeTypes()); }