Στον κόσμο του PHP development, η “πεπατημένη” είναι γνωστή: PHPUnit, CI/CD pipelines, frameworks που σου υπαγορεύουν πώς να δουλέψεις. Όμως το Ascoos OS ακολουθεί μια διαφορετική φιλοσοφία. Το testing δεν είναι κάτι που προστίθεται εκ των υστέρων· είναι μέρος του runtime.
Η κλάση TTestHandler είναι η καρδιά αυτής της λογικής. Με ένα API μπορείς να ελέγξεις κλάσεις, αντικείμενα, μεθόδους, να εκτελέσεις functions με χρονομέτρηση, να καταγράψεις αποτελέσματα και να πάρεις στατιστικά συστήματος. Όλα αυτά χωρίς να βγεις ποτέ από το οικοσύστημα του Ascoos OS.
Ας δούμε πώς ένα απλό test μετατρέπεται σε πλήρη καταγραφή με το TTestHandler.
$result = $testHandler->executeWithTiming(function () {
AscoosThrowException(InvalidArgumentException::class, 100);
}, [], true);
print_r($result);
Το αποτέλεσμα είναι ένας πίνακας που σου λέει τα πάντα: αν πέτυχε, τι επέστρεψε, πόσο χρόνο πήρε, τι κατάσταση είχε το σύστημα και ποιο ήταν το σφάλμα. Ένα ενιαίο contract που απλοποιεί το debugging και το profiling.
use ASCOOS\OS\Kernel\Tests\TTestHandler;
use ASCOOS\OS\Kernel\Core\TObject;
use ASCOOS\OS\Kernel\Core\DebugLevel;
global $AOS_LOGS_PATH;
$properties = [
'logs' => [
'useLogger' => true,
'dir' => $AOS_LOGS_PATH . '/',
'file' => 'test_handler.log',
'level' => DebugLevel::Info
],
'lang' => 'el-GR',
'debug' => [
'precision' => 4,
'log_threshold' => DebugLevel::Info
]
];
$testHandler = new TTestHandler($properties);
$object = new TObject();
$testHandler->checkClass(TObject::class, true);
$testHandler->checkObject($object, true);
$testHandler->checkMethod($object, 'getClassMetadata', true);
$result = $testHandler->executeWithTiming(function () {
AscoosThrowException(InvalidArgumentException::class, 100);
}, [], true);
print_r($result);
$testHandler->Free();
$object->Free();
Η μέθοδος executeWithTiming επιστρέφει έναν πίνακα με πεδία success, result, execution_time, system_stats, error.
Το TTestHandler δεν είναι απλώς ένα εργαλείο. Είναι η απόδειξη ότι το Ascoos OS βλέπει το testing όχι σαν “προσθήκη”, αλλά σαν αναπόσπαστο κομμάτι του runtime.
Αν έχεις βαρεθεί να στήνεις frameworks μόνο και μόνο για να τρέξεις tests, ήρθε η ώρα να δοκιμάσεις μια διαφορετική λογική. Με το Ascoos OS, το testing είναι εκεί από την πρώτη στιγμή.