Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Any chance you can share more on your magic web testing module?
    • The inside+outside code isn't anything particularly amazing I'm afraid.

      The web app here has a structure vaguely similar to Catalyst/Jifty in that it has a context object that holds the session/user/data etc.

      First attempts at a pure LWP-based web testing library had some problems with user accounts and debugging. We could instantiate a controller manually (including creating user accounts on the fly) but lacked similar flexibility in the web version.

      So the idea of inside+outside was that the master testing object for a single "website session" contains BOTH a web interface (based on Test::WWW::Mechanize) as well as a full instantiation of the codebase.

      This lets us easily deal with things like per-test dynamic user creation for web testing, and simplifies the testing of the results of calls, as we can do something via the web interface and then examine the data model to see if it made the change we expected.

      There's nothing particularly magic there, just a collection of state to allow for the tighter integration of both the inside (loaded classes) and the outside (www).

      The database migration tool, on the other hand, is something special :)

      I'll speak more about it later, as currently has some company-specific aspects (for configuration management as well as being Oracle-only) that I'll need to work out how to factor out before I tried for a CPAN release.