use strict; use warnings; use Test::More 'no_plan'; use_ok 'Benchmark::Stopwatch'; my $sw = Benchmark::Stopwatch->new; isa_ok $sw, 'Benchmark::Stopwatch'; # Overide the '_time' function for testing. my $COUNTER = 0; $sw->{_time} = sub { $COUNTER++; }; is $sw->time, 0, "got 0"; is $sw->time, 1, "got 1"; $COUNTER = 0; $sw->start; $sw->lap('one'); $sw->lap('two'); $sw->lap('one'); $sw->stop; is_deeply $sw, { start => 0, events => [ { name => 'one', time => 1 }, { name => 'two', time => 2 }, { name => 'one', time => 3 }, ], stop => 4, _time => $sw->{_time}, }, "laps recorded correctly";