Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
1 | <?php |
||
9 | class CallTrackingSpec extends ObjectBehavior |
||
10 | { |
||
11 | function it_is_initializable() |
||
12 | { |
||
13 | $this->shouldHaveType(CallTracking::class); |
||
14 | } |
||
15 | |||
16 | function let() |
||
17 | { |
||
18 | $data = [ |
||
19 | 'id' => '11', |
||
20 | 'name' => 'Simple call', |
||
21 | 'phoneDid' => '+1 343 553 22 33', |
||
22 | 'phoneDestination' => '+1 233 211 21 77', |
||
23 | 'callerId' => 1, |
||
24 | ]; |
||
25 | |||
26 | $this->beConstructedWith($data); |
||
27 | } |
||
28 | |||
29 | function it_should_be_hydrated() |
||
30 | { |
||
31 | $this->getId()->shouldReturn(11); |
||
32 | $this->getName()->shouldReturn('Simple call'); |
||
33 | $this->getPhoneDid()->shouldReturn('+1 343 553 22 33'); |
||
34 | $this->getPhoneDestination()->shouldReturn('+1 233 211 21 77'); |
||
35 | $this->hasCallerId()->shouldReturn(true); |
||
36 | } |
||
37 | } |
||
38 |