ebeveyni yöntemi alay ile sorun var, bu örnektir:PHPUnit sahte ebeveyn yöntemi
class PathProvider
{
public function getPath()
{
return isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/';
}
}
class Uri extends PathProvider
{
public function getParam($param)
{
$path = $this->getPath();
if ($path == $param)
return 'OK';
else
return 'Bad';
}
}
Ve şimdi sahte yöntem getPath (istemek) ve değerini alay tarifesi çağrı yöntemi GetParam().
$mock = $this->getMock('PathProvider');
$mock->expects($this->any())
->method('getPath')
->will($this->returnValue('/panel2.0/user/index/id/5'));
Bu bölümü yazdım, ancak bu sahte değeri test yöntemine nasıl aktarmalıyım bilmiyorum.
Ben sadece hizmet ihtiyacı bir yeniden tasarımı için, bir Uri bir PathProvider değildir olabileceğini düşünüyorum. – GordonM
@GordonM tamamen haklı! PathProvider'ı bağımlılık yapmalı ve Uri sınıfında (denetleyici veya yerleşimci aracılığıyla) enjekte etmelisiniz. Aşırı kullanımı yok – Cyprian