public void RunAsync_TaskThrows_Throws() { // arrange var expectedException = new Exception("I'm failing You, I'm so sorry."); Task Func(CancellationToken token) => Task.FromException(expectedException); var sut = new SingleProcess(Func); // act + assert sut.Invoking(async x => await x.RunAsync(CancellationToken.None)) .Should().Throw <Exception>().Where(ex => ex == expectedException); }