Be more specific with the expected exception (it was masking a bug)
Ensure that class methods are restored on the method's owner
If inherited, rebind original_method as usual; otherwise, invoke super