GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  TEST::MOCK::GUARD (3)

.ds Aq ’

NAME

Test::Mock::Guard - Simple mock test library using RAII.

CONTENTS

SYNOPSIS



  use Test::More;
  use Test::Mock::Guard qw(mock_guard);

  package Some::Class;

  sub new { bless {} => shift }
  sub foo { "foo" }
  sub bar { 1; }

  package main;

  {
      my $guard = mock_guard( Some::Class, { foo => sub { "bar" }, bar => 10 } );
      my $obj = Some::Class->new;
      is( $obj->foo, "bar" );
      is( $obj->bar, 10 );
  }

  my $obj = Some::Class->new;
  is( $obj->foo, "foo" );
  is( $obj->bar, 1 );

  done_testing;



DESCRIPTION

Test::Mock::Guard is mock test library using RAII. This module is able to change method behavior by each scope. See SYNOPSIS’s sample code.

EXPORT FUNCTION

mock_guard( CW@class_defs )

@class_defs have the following format.
key Class name or object to mock.
value Hash reference. Keys are method names; values are code references or scalars. If the value is code reference, it is used as a method. If the value is a scalar, the method will return the specified value.
You can mock instance methods as well as class methods (this feature was provided by cho45):



  use Test::More;
  use Test::Mock::Guard qw(mock_guard);

  package Some::Class;

  sub new { bless {} => shift }
  sub foo { "foo" }

  package main;

  my $obj1 = Some::Class->new;
  my $obj2 = Some::Class->new;

  {
      my $obj2 = Some::Class->new;
      my $guard = mock_guard( $obj2, { foo => sub { "bar" } } );
      is ($obj1->foo, "foo", "obj1 has not changed" );
      is( $obj2->foo, "bar", "obj2 is mocked" );
  }

  is( $obj1->foo, "foo", "obj1" );
  is( $obj2->foo, "foo", "obj2" );

  done_testing;



METHODS

new( CW@class_defs )

See mock_guard definition.

call_count( CW$class_name_or_object, CW$method_name )

Returns a number of calling of $method_name in $class_name_or_object.

AUTHOR

Toru Yamaguchi <zigorou@cpan.org>

Yuji Shimada <xaicron at cpan.org>

Masaki Nakagawa <masaki@cpan.org>

THANKS TO

cho45 <cho45@lowreal.net>

SEE ALSO

Test::MockObject

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 TEST::MOCK::GUARD (3) 2016-04-04

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.