単体テストでは、依存関係注入 (DI) を使用して依存関係を分離し、それによってテストの保守性と再利用性を高めます。 DI を使用すると、依存関係の動作をモックまたはスタブアウトして、特定の依存関係の組み合わせに対して TUC をテストし、さまざまな状況下で期待どおりに動作することを確認できます。 DI を使用すると、TUC を分離し、その動作を独立してテストできるため、テストの回復力と保守性が向上します。
単体テストでは、依存関係注入 (DI) は、保守可能で再利用可能なテストの作成に役立つ強力な手法です。 DI を使用すると、依存関係をテスト対象クラス (TUC) から切り離すことで、依存関係の動作を簡単にモックまたはスタブできるようになり、テストの実行をより詳細に制御できるようになります。
依存性注入の役割
DI の主な利点の 1 つは、TUC を分離できるため、その動作を独立してテストできることです。 DI を使用すると、特定の依存関係をモックまたはスタブ化し、他の依存関係を変更しないテスト シナリオを作成できます。このようにして、依存関係の特定の組み合わせに対して TUC をテストし、さまざまな状況下で期待どおりに動作することを確認できます。
PHP での DI の実装
PHP では多くの DI コンテナが利用可能です。最も人気のあるオプションの 1 つは Pimple です:
use Pimple\Container; $container = new Container(); $container['dependency'] = function () { return new Dependency(); };
実践的な例
次の PHP クラスを考えてみましょう:
class MyClass { private $dependency; public function __construct(Dependency $dependency) { $this->dependency = $dependency; } public function doSomething() { // 使用 $this->dependency } }
DI を使用して MyClass
を単体テストするには、次の手順を実行できます: MyClass
进行单元测试,你可以执行以下步骤:
use Pimple\Container; $container = new Container(); $container['dependency'] = function () { return new Dependency(); };
$myClass = $container->make('MyClass');
$mockDependency = $this->getMockBuilder(Dependency::class) ->disableOriginalConstructor() ->getMock(); $container['dependency'] = $mockDependency;
$this->assertEquals('Expected result', $myClass->doSomething());
通过使用 DI,你可以隔离 MyClass
MyClass
を分離し、依存関係の特定の組み合わせに対してテストできます。このアプローチにより、他のテストに影響を与えることなく依存関係の動作を変更できるため、テストの回復力と保守性が向上します。 🎜以上がPHP 単体テスト: テストにおける依存関係注入の役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。