public void WhenToAccountDoesNotExist_ShouldThrowArgumentException() { Given.ValidAccountExistsInDatabase(FromAccount); And.AccountDoesNotExist(ToAccount); Func <Task> whenITransferMoney = async() => { await SUT.TransferMoney(WithdrawalAmount, FromAccount, ToAccount, User); }; whenITransferMoney .Then() .Throw <ArgumentException>("because account doesn't exist") .WithMessage($"Account '{ToAccount}' not found"); }