http://qs321.pair.com?node_id=11121508

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Please forgive the ambiguous title, but I'm not sure how to phrase this.

I have what must be a common scenario: I validate some input based on various factors, but if validation fails, the user sees the same error message. (That is, this is not a case where the user gets a message saying "Please fix field #3".) How do I write tests for each possibility, given that there's no difference in the program's function for any particular kind of failure?

Pseudo-code:
if ( ! defined $input_object) { $self->redirect('error'); } elsif ($input_object->{'foo'} > 10) { $self->redirect('error'); } elsif ($input_object->{'bar'} !~ m/^\d{3}$/ ){ $self->redirect('error'); } $self->process($input_object);

It's important to test each of these cases (an undefined input object, a 'foo' input greater than 10, a 'bar' input that's not three digits) to make sure they fail, but I don't know how to make sure I'm testing each thing when the result of each one is the same.