entegrasyon test komut satırı PHP

0 Cevap php

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

0 Cevap