public void OnStartAuthorityCallsComponentsAndCatchesExceptions() { // add component UnityAction func = Substitute.For <UnityAction>(); identity.OnStartAuthority.AddListener(func); func .When(f => f.Invoke()) .Do(f => { throw new Exception("Some exception"); }); // make sure exceptions are not swallowed Assert.Throws <Exception>(() => { identity.StartAuthority(); }); func.Received(1).Invoke(); }