perl-Test-Exception

Test exception-based code

This module provides a few convenience methods for testing exception based code. It is built with Test::Builder and plays happily with Test::More and friends. If you are not already familiar with Test::More now would be the time to go take a look. You can specify the test plan when you 'use Test::Exception' in the same way as 'use Test::More'. See Test::More for details. NOTE: Test::Exception only checks for exceptions. It will ignore other methods of stopping program execution - including exit(). If you have an exit() in evalled code Test::Exception will not catch this with any of its testing functions. NOTE: This module uses Sub::Uplevel and relies on overriding 'CORE::GLOBAL::caller' to hide your test blocks from the call stack. If this use of global overrides concerns you, the Test::Fatal module offers a more minimalist alternative. * *throws_ok* Tests to see that a specific exception is thrown. throws_ok() has two forms: throws_ok BLOCK REGEX, TEST_DESCRIPTION throws_ok BLOCK CLASS, TEST_DESCRIPTION In the first form the test passes if the stringified exception matches the give regular expression. For example: throws_ok { read_file( 'unreadable' ) } qr/No file/, 'no file'; If your perl does not support 'qr//' you can also pass a regex-like string, for example: throws_ok { read_file( 'unreadable' ) } '/No file/', 'no file'; The second form of throws_ok() test passes if the exception is of the same class as the one supplied, or a subclass of that class. For example: throws_ok { $foo->bar } "Error::Simple", 'simple error'; Will only pass if the 'bar' method throws an Error::Simple exception, or a subclass of an Error::Simple exception. You can get the same effect by passing an instance of the exception you want to look for. The following is equivalent to the previous example: my $SIMPLE = Error::Simple->new; throws_ok { $foo->bar } $SIMPLE, 'simple error'; Should a throws_ok() test fail it produces appropriate diagnostic messages. For example: not ok 3 - simple error Like all other Test::Exception functions you can avoid prototypes by passing a subroutine explicitly: throws_ok( sub {$foo->bar}, "Error::Simple", 'simple error' ); A true value is returned if the test succeeds, false otherwise. On exit $@ is guaranteed to be the cause of death (if any). A description of the exception being checked is used if no optional test description is passed. NOTE: Remember when you 'die $string_without_a_trailing_newline' perl will automatically add the current script line number, input line number and a newline. This will form part of the string that throws_ok regular expressions match against. * *dies_ok* Checks that a piece of code dies, rather than returning normally. For example: sub div { my ( $a, $b ) = @_; return $a / $b; }; dies_ok { div( 1, 0 ) } 'divide by zero detected'; dies_ok( sub { div( 1, 0 ) }, 'divide by zero detected' ); A true value is returned if the test succeeds, false otherwise. On exit $@ is guaranteed to be the cause of death (if any). Remember: This test will pass if the code dies for any reason. If you care about the reason it might be more sensible to write a more specific test using throws_ok(). The test description is optional, but recommended. * *lives_ok* Checks that a piece of code doesn't die. This allows your test script to continue, rather than aborting if you get an unexpected exception. For example: sub read_file { my $file = shift; local $/; open my $fh, '<', $file or die "open failed ($!)\n"; $file = <FILE>; return $file; }; my $file; lives_ok { $file = read_file('test.txt') } 'file read'; lives_ok( sub { $file = read_file('test.txt') }, 'file read' ); Should a lives_ok() test fail it produces appropriate diagnostic messages. For example: not ok 1 - file read A true value is returned if the test succeeds, false otherwise. On exit $@ is guaranteed to be the cause of death (if any). The test description is optional, but recommended. * *lives_and* Run a test that may throw an exception. For example, instead of doing: my $file; lives_ok { $file = read_file('answer.txt') } 'read_file worked'; is $file, "42", 'answer was 42'; You can use lives_and() like this: lives_and { is read_file('answer.txt'), "42" } 'answer is 42'; lives_and(sub {is read_file('answer.txt'), "42"}, 'answer is 42'); Which is the same as doing is read_file('answer.txt'), "42\n", 'answer is 42'; unless 'read_file('answer.txt')' dies, in which case you get the same kind of error as lives_ok() not ok 1 - answer is 42 A true value is returned if the test succeeds, false otherwise. On exit $@ is guaranteed to be the cause of death (if any). The test description is optional, but recommended.

Non è disponibile alcun pacchetto ufficiale per openSUSE Leap 15.5

Distribuzioni

openSUSE Tumbleweed

openSUSE Leap 15.6

openSUSE Leap 15.5

openSUSE Leap 15.4

SUSE SLE-12-SP5

RedHat RHEL-7

CentOS CentOS-7

Distribuzioni non supportate

Le seguenti distribuzioni non sono ufficialmente supportate. Usare questi pacchetti a proprio rischio.

openSUSE:ALP:Experimental:Slowroll:Base

openSUSE:Leap:15.0

openSUSE:Leap:15.1

openSUSE:Leap:15.2

openSUSE:Leap:42.2

openSUSE:Leap:42.3

openSUSE:Slowroll:Base

openSUSE:Leap:42.1

openSUSE:13.1

openSUSE:13.2

openSUSE:11.4

openSUSE:12.1

openSUSE:12.2

openSUSE:12.3

openSUSE:11.1

SUSE:ALP

SUSE:SLE-15:GA

DISCONTINUED:openSUSE:11.1

Intel:Moblin2

home:coolo:alp

SUSE:SLE-12:SLE-Module-Adv-Systems-Management

home:obsgeek0:repos:SLE15:aggregate

CentOS:CentOS-5

SUSE:SLE-10

deleted

CentOS:CentOS-6