(PHP)使用依赖注入 (DI) 进行单元测试
在过去的几天里,我阅读了很多有关依赖注入的内容。 现在,由于我正在尝试升级我的 phpunit 技能,所以我正在考虑如何实现这个 DI。在我的单元测试中。
假设我有两个对象:
class Event{
}
class Shift{
public function __construct(Event $e)
{
(...)
}
}
这就是我本质上理解 DI 的方式。 现在我想为我的移位构造函数编写一个测试:
class ShiftTest extends
\ModelTestCase
{
public function testCanCreateShift()
{
$e = new \Js\Entity\Event();
$this->assertInstanceOf('JS\Entity\Shift', new \JS\Entity\Shift($e));
}
}
但现在我不想在这里定义一个完整的事件对象。那么在 phpUnit 中创建事件对象的建议方法是什么?
Over the past few days i read a lot about Dependency Injection.
Now since I am trying to upgrade my phpunit skills i was thinking how to implement this DI. in my unit tests.
Say I have two objects:
class Event{
}
class Shift{
public function __construct(Event $e)
{
(...)
}
}
This how i essentially understand DI.
Now I want to write a test for my shift constructor:
class ShiftTest extends
\ModelTestCase
{
public function testCanCreateShift()
{
$e = new \Js\Entity\Event();
$this->assertInstanceOf('JS\Entity\Shift', new \JS\Entity\Shift($e));
}
}
But now i dont want to define here a complete event object. So what is the adviced way to create my event object in phpUnit?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这就是嘲笑,存根。等用于。您创建一个 SUT(被测系统),并模拟所有依赖项。
如果没有 DI,你就无法做到这一点。
This is what mocks, stubs. etc. are used for. You create a SUT (system under test), and mock out all dependencies.
You wouldn't be able to do this without DI in the first place.