【发布时间】:2016-04-22 03:09:07
【问题描述】:
我正在尝试使用它自己的构造函数依赖项来模拟一个类。我正在使用 Laravel 5.2。
class A {
public function something() {}
}
class B {
protected $a;
public function __construct(A $a) {
$this->a = $a;
}
public function getA() {
return $this->a->something();
}
}
MockingTest extends TestCase {
public function testItGetsSomething() {
$m = Mockery::mock('B');
$m->shouldReceive('getA')->once()->andReturn('Something');
}
}
我知道我可以将我的 ClassB.__construct(A $a) 更改为:
public function __construct(A $a = null) {
$this->a = $a ?: new A();
}
但是有没有更好/更清洁的方法来做到这一点?如果有更可接受的方法,我不想仅仅为了单元测试而更改我的构造函数代码。
【问题讨论】:
标签: php laravel mocking phpunit mockery