using System;
using System.Threading;
using System.Threading.Tasks;
using FluentAssertions;
Func<Task> asyncAction = async () => {
await Task.Yield();
throw new ArgumentNullException("test");
};
var exn = await asyncAction.Should().ThrowAsync<ArgumentNullException>();
var subject = exn.Subject;
Console.WriteLine(subject.GetType());