Engelli yapıcı ve elle ayarlanmış korumalı özellikleri olan sahte bir nesne oluşturmak mümkün mü?phpunit - mockbuilder - set nesne nesnesini iç özellik
İşte bir salakça örnektir:
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();
}
}
yüzden korunmaktadır p değeri enjekte etmek istiyorum, bu yüzden yapamam. Setter veya IoC'yi tanımlamalı mıyım yoksa bunu phpunit ile yapabilir miyim?
Sadece kayıt için - halka açık olmayan API'yi test ediyorsanız, yanlış yapıyorsunuz demektir. Birim testi, iç uygulama değil, davranış testiyle ilgilidir. –