Zaten PHPUnit ile test birimi sınıfları yürütülürken, komut satırında çalışan bir PHP komut dosyası var.
Ancak, komut dosyası kendisi düzgün hiçbir mantıksal hataları ve çalışır olduğunu doğrulamak istiyorum.
// require classes
require_once 'injectedClass.php';
require_once 'DBClass.php';
require_once 'taskEngine.php';
$injectedObj = new injectedClass;
$dbObj = new DBClass;
$taskRunner = new taskEngine($injectedObj, $dbObj);
$taskRunner->task1()->task2();
$taskRunner->finish();
//etc
Updated Solution
Ben onu overthinking edildi djechelon cevabı önerdi kadar basittir. Çözüm PHPUnit testi oluşturmak ve taskRunner
alay nesneler geçti değişkenleri önceden belirlemektir. Canlı komut olarak, gerçek nesneleri oluşturmadan önce basit bir çek aynı komut test ve üretim için kullanılmasına olanak tanır:
testi:
$injectedObj = $this->getMock('injectedClass');
$dbObj = $this->getMock('DBClass');
require_once '/path/to/live/script.php';
$this->assertTrue($taskRunner->finished);
komut:
// require classes
if(!isset($injectedObj)) {
$injectedObj = new injectedClass;
}
if(!isset($dbObj)) {
$dbObj = new DBClass;
}
$taskRunner = new taskEngine($injectedObj, $dbObj);
// run tasks