The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Venus::Role::Testable - Testable Role

ABSTRACT

Testable Role for Perl 5

SYNOPSIS

  package Example;

  use Venus::Class;

  with 'Venus::Role::Testable';

  attr 'value';

  sub execute {
    return pop;
  }

  package main;

  my $example = Example->new;

  # $example->is_true(sub{0});

DESCRIPTION

This package modifies the consuming package and provides methods for dispatching method calls and returning truthy returns as true and falsy returns as false boolean values.

METHODS

This package provides the following methods:

is_false

  is_false(Str | CodeRef $method, Any @args) (Bool)

The is_false method dispatches the method call or executes the callback and returns truthy returns as false and falsy returns as true "boolean" values.

Since 0.08

is_false example 1
  package main;

  my $example = Example->new;

  my $true = $example->is_false(execute => 0);

  # 1
is_false example 2
  package main;

  my $example = Example->new;

  my $true = $example->is_false(sub{0});

  # 1
is_false example 3
  package main;

  my $example = Example->new;

  my $false = $example->is_false(execute => 1);

  # 0

is_true

  is_true(Str | CodeRef $method, Any @args) (Bool)

The is_true method dispatches the method call or executes the callback and returns truthy returns as true and falsy returns as false "boolean" values.

Since 0.08

is_true example 1
  package main;

  my $example = Example->new;

  my $true = $example->is_true(execute => 1);

  # 1
is_true example 2
  package main;

  my $example = Example->new;

  my $true = $example->is_true(sub{1});

  # 1
is_true example 3
  package main;

  my $example = Example->new;

  my $false = $example->is_true(execute => 0);

  # 0