>利用依赖注入以增强可验证性
User
依赖性注入(DI)可显着提高您的php 8代码的测试性。 与其直接在类中创建对象,不如将其注入依赖项。这使您可以在测试过程中轻松地用模拟对象替换真实的依赖项。 例如,考虑与数据库交互的
// Without DI class User { public function getUserById(int $id): ?array { $db = new Database(); // Tight coupling! return $db->query("SELECT * FROM users WHERE id = $id"); } } // With DI class User { private Database $database; public function __construct(Database $database) { $this->database = $database; } public function getUserById(int $id): ?array { return $this->database->query("SELECT * FROM users WHERE id = $id"); } }
User
在di示例中,Database
>类取决于AUser
>对象,该对象将传递到其构造函数中。 在测试过程中,您可以注入一个模拟数据库对象,该对象返回预定义的数据,消除了对真实数据库连接的需求,并使测试更快,更可靠。 这将
>保持依赖关系简单:
避免过度复杂的依赖。 专注于仅注入必要的对象,使您的课程更加集中且更易于测试。测试驱动的开发(TDD):在编写代码之前写作测试> >编写代码会鼓励更好地设计,并从一开始就可以促进DI的使用。 避免过度嵌入,因为它会使测试变得脆弱,难以理解。 专注于模拟外部依赖性(数据库,API等),而不是内部组件。 清晰的命名约定:为您的接口和类使用描述性名称,以改善代码可读性和可维护性。项目?>通过di 脱钩和可维护性依赖注射是松散耦合的基石。通过注射依赖性而不是内部创建它们,您可以减少应用程序不同部分之间的相互依赖性。 这导致了几个好处:
灵活性和可扩展性:添加新功能或集成第三方库变得更加简单,因为您可以轻松地注入新的依赖项而无需修改现有代码。 8?
>> >避免在DI测试中进行常见的陷阱
以上是如何使用依赖注入来改善PHP 8的可检验性?的详细内容。更多信息请关注PHP中文网其他相关文章!