if somebody has assigned themselves as your delegate I think it is safe to assume that it will respond to this method, especially if you make it required in the TestDelegate protocol.

You'll be able to just call `[self.testDelegate test:self didFinishWithError:error];` without testing either condition