Perl在Test :: MockObject中使用set_bound

时间:2012-02-13 22:02:23

标签: perl unit-testing testing tdd

有人可以提供一个使用Test::MockObject模块中的set_bound()方法的示例吗?

set_bound()方法可以返回Test::MockObject的实例(或任何其他对象)

1 个答案:

答案 0 :(得分:2)

* “set_bound方法可以返回Test :: MockObject(或任何其他对象)的实例”*

是。来自source

sub set_bound {
    # ...
    return unless exists $bindings{reftype( $ref )};
    $self->mock( $name,  $bindings{reftype( $ref )} );
} # So this returns either undef, or result of mock() call

sub mock {
    #...
    $self;
} # So this CAN return an instance of Test::MockObject

* 有人可以提供一个使用Test :: MockObject模块中的set_bound方法的示例吗?*

my $value = 'X';
$mock->set_bound( 'next_value', \$value );
is( $mock->next_value, 'X' );
$var = 'Y';
is( $mock->next_value, 'Y' ); # Method result changed to new value of the variable

为什么要用它? POD声明“这通常比替换模拟方法更容易”。我认为“更方便”是啤酒持有人的眼睛,但它肯定是一个很好的捷径。