我正在对依赖注入容器进行单元测试。
在最基本的层面上,我正在测试对象图的创建是否正确。这使用了加载到 DIC 中的反射和规则的混合。
DIC 使用类定义工作,并且由于模拟的无依赖性,我认为它们不适合这项任务是否正确?
在不使用模拟的情况下,这是我的一个测试的外观:
public function testObjectGraphCreation() {
$a = $this->dic->create('A');
$this->assertInstanceOf('B', $a->b);
$this->assertInstanceOf('C', $a->b->c);
$this->assertInstanceOf('D', $a->b->c->d);
$this->assertInstanceOf('E', $a->b->c->e);
$this->assertInstanceOf('F', $a->b->c->e->f);
}
(显然,这种链接和公共依赖项仅用于测试)
我已经定义了几个类来完成这项工作:
class A {
public $b;
public function __construct(B $b) {
$this->b = $b;
}
}
class B {
public $c;
public function __construct(C $c) {
$this->c = $c;
}
}
class C {
public $d;
public $e;
public function __construct(D $d, E $e) {
$this->d = $d;
$this->e = $e;
}
}
class D {
}
class E {
public $f;
public function __construct(F $f) {
$this->f = $f;
}
}
class F {}
由于这个测试的性质,我是否认为我不能为此使用生成的模拟?