No description or website provided.
Perl
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
author
eg
img
lib/Test
t
xt
.gitignore
.travis.yml
Build.PL
Changes
LICENSE
META.json
NOTE
README.md
cpanfile

README.md

NAME

Test::Ika - Yet another BDD testing library(Development Release)

SYNOPSIS

use Test::Ika;

describe 'MessageFilter' => sub {
    my $filter;

    before_each {
        $filter = MessageFilter->new();
    };

    it 'should detect message with profanity word' => sub {
        ok $filter->detect('foo');
    };

    it 'should not detect message without profanity word' => sub {
        ok ! $filter->detect('bar');
    };
};

runtests;

DESCRIPTION

Test::Ika is yet another BDD framework for Perl5.

This module provides pretty output for testing.

THIS IS A DEVELOPMENT RELEASE. API MAY CHANGE WITHOUT NOTICE.

FAQ

  • Ika?

    This module is dedicated to ikasam_a, a famous Japanese testing engineer.

  • Why another one?

    This module focused to pretty output. Another modules doesn't provide this feature.

  • Where is 'should'?

    I think the keyword 'should' is not a core feature of BDD.

Reporters

Test::Ika provides some reporters.

  • The spec mode(default)

  • TAP output(it's enabled under $ENV{HARNESS_ACTIVE} is true)

FUNCTIONS

  • describe($name, $code)

    Create new Test::Ika::ExampleGroup.

  • context

    It's alias of 'describe' function.

  • it($name, \&code)

    Create new Test::Ika::Example.

  • it($name, $cond, \&code)

    Create new conditional Test::Ika::Example.

    $cond is usually a sub-routine reference. You can set it with "when" statement.

    # run this example, if C<$ENV{TEST_MESSAGE}> returns true
    
    my $cond = sub { $ENV{TEST_MESSAGE} };
    
    it 'should detect message', $cond => sub {
        my $filter = MessageFilter->new('foo');
        ok $filter->detect('hello foo');
    };
    
  • when(\&code)

    Specify conditional sub-routine.

    You can write conditional example as shown below:

    it 'should detect message', when { $ENV{TEST_MESSAGE} } => sub {
        my $filter = MessageFilter->new('foo');
        ok $filter->detect('hello foo');
    };
    
  • xit($name, \&code)

  • xit($name, $cond, \&code)

    Create new Test::Ika::Example which marked "disabled".

  • before_suite(\&code)

    Register hook for before running suite.

  • before_all(\&code)

    Register hook for before running example group.

  • before_each(\&code)

    Register hook for before running each examples.

    This block can receive example and example group.

    before_each {
        my ($example, $group) = @_;
        # ...
    };
    
  • after_suite(\&code)

    Register hook for after running suite.

  • after_all(\&code)

    Register hook for after running example group.

  • after_each(\&code)

    Register hook for after running each examples.

    This block can receive example and example group.

    after_each {
        my ($example, $group) = @_;
        # ...
    };
    
  • runtests()

    Do run test cases immediately.

    Normally, you don't call this method expressly. Test::Ika runs test cases on END { } phase.

CLASS METHODS

  • Test::Ika->reporter()

    Get a reporter instance.

  • Test::Ika->set_reporter($module)

    Load a reporter class.

AUTHOR

Tokuhiro Matsuno

SEE ALSO

Test::Spec

Test::Behavior::Spec

Test::More::Behaviours

LICENSE

Copyright (C) Tokuhiro Matsuno

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.