私はPHPUnitを積極的に使用し、もう一度Dependency Injectionパターンを実装して、PDOからMockオブジェクトを作成する際に説明した困難に遭遇しました。
私が達成したかったものは次のとおりです。
class MyTest
extends \PHPUnit_Framework_TestCase
{
...
protected function setUp()
{
$ this ->pdo = $ this ->getMock( 'PDO' );
$ this ->myObject = new MyClass($ this ->pdo);
}
}
* This source code was highlighted with Source Code Highlighter .
解決策として、 LazyPDOクラス、PDOの子孫が作成されました。PDOの子孫は痛みを伴わずに(デ)シリアル化でき、コンストラクターに渡されたかsetAttribute()に渡されたかに関係なく、接続属性のセットを保存します。 コードはGitHubに投稿されています 。
私は批判することをうれしく思います。