Testing the external API with Mechanize is great. You should pat yourself on the back for that. Usually there are some modules that are separate from your web UI code, which are easier to test thoroughly by calling their methods directly. It's more an issue of getting more coverage, or saving some setup time on the Mech tests, than it is of needing a particular type of test. If you're wondering what you haven't tested yet, Devel::Cover can tell you.