Breaking Tight Coupling by using Mock Objects(Chapter 4 of Python Testing Beginner's Guide)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 >>> from mocker import Mocker
2 >>> mocker = Mocker()
3 >>> func = mocker.mock()
4 >>> func(56, "hello")
5 <mocker.Mock object at 0x01252150>
6 >>> mocker.result(11)
7 >>> mocker.replay()
8 >>> func(56, "hello")
9 11
10 >>> mocker.restore()
11 >>> mocker.verify()
12
13 >>> from mocker import Mocker
14 >>> from itertools import islice
15 >>> mocker = Mocker()
16 >>> generator = mocker.mock()
17 >>> generator(12)
18 <mocker.Mock object at 0x013238B0>
19 >>> mocker.generate([16, 31, 24, 'hike'])
20 >>> mocker.replay()
21 >>> tuple(islice(generator(12), 1, 2))
22 (31,)
23 >>> mocker.restore()
24 >>> mocker.verify()
25
26 >>> from mocker import Mocker, IN
27 >>> mocker = Mocker()
28 >>> func = mocker.mock()
29 >>> func(7, IN([45, 68, 19])) # doctest: +ELLIPSIS
30 <mocker.Mock object at 0x01328090>
31 >>> mocker.result(5)
32 >>> mocker.count(3)
33 >>> mocker.replay()
34 >>> func(7, 19)
35 5
36 >>> func(7, 19)
37 5
38 >>> func(7, 19)
39 5
40 >>> mocker.restore()
41 >>> mocker.verify()
2 >>> mocker = Mocker()
3 >>> func = mocker.mock()
4 >>> func(56, "hello")
5 <mocker.Mock object at 0x01252150>
6 >>> mocker.result(11)
7 >>> mocker.replay()
8 >>> func(56, "hello")
9 11
10 >>> mocker.restore()
11 >>> mocker.verify()
12
13 >>> from mocker import Mocker
14 >>> from itertools import islice
15 >>> mocker = Mocker()
16 >>> generator = mocker.mock()
17 >>> generator(12)
18 <mocker.Mock object at 0x013238B0>
19 >>> mocker.generate([16, 31, 24, 'hike'])
20 >>> mocker.replay()
21 >>> tuple(islice(generator(12), 1, 2))
22 (31,)
23 >>> mocker.restore()
24 >>> mocker.verify()
25
26 >>> from mocker import Mocker, IN
27 >>> mocker = Mocker()
28 >>> func = mocker.mock()
29 >>> func(7, IN([45, 68, 19])) # doctest: +ELLIPSIS
30 <mocker.Mock object at 0x01328090>
31 >>> mocker.result(5)
32 >>> mocker.count(3)
33 >>> mocker.replay()
34 >>> func(7, 19)
35 5
36 >>> func(7, 19)
37 5
38 >>> func(7, 19)
39 5
40 >>> mocker.restore()
41 >>> mocker.verify()