HTML-FormHandler-0.40005

NAME

VERSION

SYNOPSIS

One of the big advantages of FormHandler compared to many other form packages is that you can test the same form that you use in your controller.

DESCRIPTION

It's difficult to test forms that are instantiated in controllers with 'add_element' calls and from YAML, and that have no form class. It's one of the reasons that 'dynamic' forms generated with a field_list aren't a good idea for anything except the simplest forms. If you have a form class that contains everything that is needed for processing the form, it's really really easy to create tests for forms. Look in the FormHandler 't' directory. It's full of tests for forms.

You can test that the validations work, that the database is getting updated correctly, even that the HTML that's being rendered is correct. If something isn't working correctly, it's ten times easier to debug in a test case than sitting in a controller somewhere. And when you finally start up your application and use the form, there should be very few surprises.

FormHandler provides a simple function to test whether the HTML output is correct, 'is_html' in HTML::FormHandler::Test, which uses HTML::TreeBuilder. If you need to build forms that use the rendering code to produce particular output, it can be helpful.

Example

Here's an example of a test, originally copied from one of the DBIC model tests. But you should download the tar.gz or checkout the distribution from github and browse through the tests.