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.
  • Test::Tutorial talks primarily about writing unit tests for modules. If you have existing scripts that you want to test, you may want to look into regression testing. Regression testing is used when releasing bug fixes and extensions to existing functionality to ensure that the overall level of functionality does not "regress" -- i.e. those things that worked in version 1.0 should keep working in version 1.1. I also find regression testing useful for poorly written legacy scripts. (For example, it is di
    • # Here's a sample of a Session.t file that
      # corresponds to a file I have.
      # It could certainly be more robust, and test
      # more options than just some simple scalars.

      #!/usr/bin/perl -w

      use strict;

      use constant SAVEPATH=>'/tmp';

      use Test::More tests=>7;

      BEGIN {
          use_ok( 'TW::Session' );

      my $saved_session_id;

      CREATE: {
          my $session = new TW::Session( SavePath=>SAVEPATH );
          isa_ok( $session, 'TW::Session', 'Created first session' );
          $session->{yankee} = 'doodle';
          is( $session->{yankee}, 'doodle', 'Stored the value' );
          $saved_session_id = $session->id;

      REREAD: {
          my $session = new TW::Session( SID => $saved_session_id, SavePath=>SAVEPATH );
          isa_ok( $session, 'TW::Session', 'Instantiated 2nd session instance' );
          is( $session->id, $saved_session_id, 'IDs match' );
          is( $session->{yankee}, 'doodle', 'Retrieved the value' );

          # Check the link method
          is( $session->link( 'Click', 'target' ),
              "<a href=\"target?SID=$saved_session_id\">Click</a>",
              'link() builds correctly' );

          my $sess_filename = SAVEPATH . "/sess_$saved_session_id";
          $session->delete;  # Can't really test this one, but let's clean up anyway.
          ok( ! -e $sess_filename, "File $sess_filename was deleted" );