-
Notifications
You must be signed in to change notification settings - Fork 1
/
03.unexpected_method_call.t
59 lines (50 loc) · 1.14 KB
/
03.unexpected_method_call.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
use strict;
use warnings;
use t::Util qw(expect_fail expect_pass);
use Test::More;
BEGIN {
use_ok('Test::EasyMock',
qw{
create_mock
expect
replay
reset
verify
});
}
# ----
# Tests.
subtest 'default mock' => sub {
my $mock = create_mock();
expect_fail {
replay($mock);
$mock->foo();
} 'nothing is expected.';
reset($mock);
expect_fail {
expect($mock->foo());
replay($mock);
$mock->bar();
} 'expect `foo` method, but `bar` method.';
reset($mock);
expect_fail {
expect($mock->foo());
replay($mock);
$mock->foo(1);
} 'expect empty argument, but an argument exists.';
reset($mock);
subtest 'more than the expected times.' => sub {
expect($mock->foo());
replay($mock);
expect_pass { $mock->foo() };
expect_fail { $mock->foo() };
};
reset($mock);
expect_fail {
expect($mock->foo());
replay($mock);
verify($mock); # fail
} 'less than the expected times.';
};
# ----
done_testing;