【发布时间】:2020-11-11 14:38:50
【问题描述】:
我想为我正在测试的同一类中的受保护属性存根公共设置方法 (setA()),但我收到此错误:
无法访问受保护的属性 Mockery_2_Foo::$a
我的目标只是对method1 进行单元测试,但该方法调用setA,所以我不确定如何刺出setA,因此它不会以任何方式干扰单元- method1 的测试结果。
class Foo {
protected $a;
public function setA($val) {
$this->a = $val * 2;
}
public function method1($val) {
$this->setA($val);
return $val * 4;
}
............
}
/**
* @coversDefaultClass Foo
*/
class FooTest {
public function setUp(): void {
$this->foo = Mockery::mock(Foo::class)
->shouldAllowMockingProtectedMethods()
->makePartial();
}
/**
* @covers ::method1
*/
public function testMethod1() {
$this->foo->shouldReceive('setA')
->set('a', 4);
$this->assertEquals(8, $this->foo->method1(2));
}
..........
}``
【问题讨论】:
标签: unit-testing phpunit mockery