phpunit - mockbuilder - установить внутреннее свойство фиктивного объекта
Можно ли создать фиктивный объект с отключенным конструктором и заданными вручную защищенными свойствами?
Вот идиотский пример:
class A {
protected $p;
public function __construct(){
$this->p = 1;
}
public function blah(){
if ($this->p == 2)
throw Exception();
}
}
class ATest extend bla_TestCase {
/**
@expectedException Exception
*/
public function testBlahShouldThrowExceptionBy2PValue(){
$mockA = $this->getMockBuilder('A')
->disableOriginalConstructor()
->getMock();
$mockA->p=2; //this won't work because p is protected, how to inject the p value?
$mockA->blah();
}
}
Итак, я хочу ввести значение p, которое защищено, поэтому я могут. Должен ли я определить сеттер или IoC, или я могу сделать это с помощью phpunit?