项目作者: ondrejmirtes

项目描述 :
Create objects of classes with mocked dependencies more easily!
高级语言: PHP
项目地址: git://github.com/ondrejmirtes/mocktainer.git
创建时间: 2015-05-10T15:36:40Z
项目社区:https://github.com/ondrejmirtes/mocktainer

开源协议:MIT License

下载


Mocktainer

Build Status
Coverage Status
Scrutinizer Code Quality
Latest Stable Version

Tired of passing mocked dependencies you don’t care about to classes under test?

Is this code familiar to you?

  1. $foo1 = $this->getMockBuilder(Foo1::class)
  2. ->disableOriginalConstructor()
  3. ->getMock();
  4. $foo2 = $this->getMockBuilder(Foo2::class)
  5. ->disableOriginalConstructor()
  6. ->getMock();
  7. $foo3 = $this->getMockBuilder(Foo3::class)
  8. ->disableOriginalConstructor()
  9. ->getMock();
  10. $foo4 = $this->getMockBuilder(Foo4::class)
  11. ->disableOriginalConstructor()
  12. ->getMock();
  13. $interestingDependency = $this->getMock(Foo5::class);
  14. $interestingDependency->expects($this->once())
  15. ->method('getAwesome')
  16. ->getMock();
  17. // public function __construct(Foo1 $foo1, Foo2 $foo2, Foo3 $foo3, Foo4 $foo4, Foo5 $foo5)
  18. $bar = new Bar($foo1, $foo2, $foo3, $foo4, $interestingDependency);

With Mocktainer, you can reduce the above code to this:

  1. $interestingDependency = $this->getMock(Foo5::class);
  2. $interestingDependency->expects($this->once())
  3. ->method('getAwesome')
  4. ->getMock();
  5. $bar = $this->getMocktainer()->create(Bar::class, ['foo5' => $interestingDependency]);

Other mockable constructor arguments will be mocked using MockBuilder and disableOriginalConstructor().