ルートのユニットテスト、テスターの修正
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
<?php
|
||||
namespace Site\Lib;
|
||||
|
||||
/**
|
||||
* アサーション失敗用のカスタム例外
|
||||
*/
|
||||
class AssertionFailedException extends \Exception {
|
||||
}
|
||||
|
||||
/**
|
||||
* 軽量なユニットテストフレームワーク
|
||||
*/
|
||||
@@ -61,8 +67,7 @@ class Tester {
|
||||
}
|
||||
|
||||
// サポートされていない場合は色を無効にする
|
||||
if (PHP_SAPI !== 'cli' || strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'
|
||||
&& !getenv('ANSICON')) {
|
||||
if (PHP_SAPI !== 'cli' || strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' && !getenv('ANSICON')) {
|
||||
$this->colorOutput = false;
|
||||
}
|
||||
}
|
||||
@@ -486,19 +491,8 @@ class Tester {
|
||||
$this->output($this->colorize('bold', "テスト結果の概要:"));
|
||||
$this->output(" テスト総数: {$this->testCount}");
|
||||
$this->output(" ".$this->colorize('green', "合格: {$this->passCount}"));
|
||||
|
||||
if ($this->failCount > 0) {
|
||||
$this->output(" ".$this->colorize('red', "失敗: {$this->failCount}"));
|
||||
} else {
|
||||
$this->output(" 失敗: 0");
|
||||
}
|
||||
|
||||
if ($this->errorCount > 0) {
|
||||
$this->output(" ".$this->colorize('yellow', "エラー: {$this->errorCount}"));
|
||||
} else {
|
||||
$this->output(" エラー: 0");
|
||||
}
|
||||
|
||||
$this->output(" ".$this->colorize('red', "失敗: {$this->failCount}"));
|
||||
$this->output(" ".$this->colorize('yellow', "エラー: {$this->errorCount}"));
|
||||
$this->output('');
|
||||
|
||||
// 失敗を書き出す
|
||||
@@ -621,9 +615,3 @@ class Tester {
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* アサーション失敗用のカスタム例外
|
||||
*/
|
||||
class AssertionFailedException extends \Exception {
|
||||
}
|
||||
@@ -13,55 +13,47 @@ if (MYSQL_ENABLED) {
|
||||
]);
|
||||
|
||||
$test->describe('パケットのデバッグ', function($test): void {
|
||||
try {
|
||||
$db = new Mysql();
|
||||
$db = new Mysql();
|
||||
|
||||
$db->setDebug(true);
|
||||
$db->connect();
|
||||
$db->setDebug(true);
|
||||
$db->connect();
|
||||
|
||||
$result = $db->query('SELECT * FROM user WHERE id = 1');
|
||||
$result = $db->query('SELECT * FROM user WHERE id = 1');
|
||||
|
||||
foreach ($result['rows'] as $row) {
|
||||
echo "ユーザー名: ".$row['nickname']."\n";
|
||||
}
|
||||
|
||||
$db->savePacketLogToFile('mysql_log.txt');
|
||||
$db->close();
|
||||
} catch (\Exception $e) {
|
||||
echo 'エラー: '.$e->getMessage()."\n";
|
||||
foreach ($result['rows'] as $row) {
|
||||
echo "ユーザー名: ".$row['nickname']."\n";
|
||||
}
|
||||
|
||||
$db->savePacketLogToFile('mysql_log.txt');
|
||||
$db->close();
|
||||
});
|
||||
|
||||
$test->describe('プリペアドステートメント', function($test): void {
|
||||
try {
|
||||
$db = new Mysql();
|
||||
$db->connect();
|
||||
$db = new Mysql();
|
||||
$db->connect();
|
||||
|
||||
// データの入り
|
||||
$stmt = $db->prepare('INSERT INTO users (name, age) VALUES (?, ?)');
|
||||
$test->assertTrue($stmt);
|
||||
// データの入り
|
||||
$stmt = $db->prepare('INSERT INTO users (name, age) VALUES (?, ?)');
|
||||
$test->assertTrue($stmt);
|
||||
|
||||
$db->execute($stmt, ['山田太郎', 25]);
|
||||
// TODO: assert
|
||||
$db->execute($stmt, ['山田太郎', 25]);
|
||||
// TODO: assert
|
||||
|
||||
$close = $db->demolish($stmt);
|
||||
$this->assertTrue($close);
|
||||
$close = $db->demolish($stmt);
|
||||
$this->assertTrue($close);
|
||||
|
||||
// データの受け取り
|
||||
$stmt = $db->prepare('SELECT * FROM users WHERE age > ?');
|
||||
$test->assertTrue($stmt);
|
||||
// データの受け取り
|
||||
$stmt = $db->prepare('SELECT * FROM users WHERE age > ?');
|
||||
$test->assertTrue($stmt);
|
||||
|
||||
$res = $db->execute($stmt, [20]);
|
||||
// TODO: assert
|
||||
print_r($res);
|
||||
$res = $db->execute($stmt, [20]);
|
||||
// TODO: assert
|
||||
print_r($res);
|
||||
|
||||
$close = $db->demolish($stmt);
|
||||
$this->assertTrue($close);
|
||||
$close = $db->demolish($stmt);
|
||||
$this->assertTrue($close);
|
||||
|
||||
$db->close();
|
||||
} catch (\Exception $e) {
|
||||
echo 'エラー: '.$e->getMessage()."\n";
|
||||
}
|
||||
$db->close();
|
||||
});
|
||||
|
||||
$test->printSummary();
|
||||
|
||||
38
src/Site/Test/LibRoute.php
Normal file
38
src/Site/Test/LibRoute.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
namespace Site\Test;
|
||||
|
||||
require_once __DIR__.'/../../../autoload.php';
|
||||
|
||||
use Site\Lib\Tester;
|
||||
use Site\Lib\Route;
|
||||
|
||||
$test = new Tester([
|
||||
'colorOutput' => true,
|
||||
'verboseOutput' => true
|
||||
]);
|
||||
|
||||
$test->describe('ルート', function($test): void {
|
||||
$test->it('ルートに追加出来るはず', function($test): void {
|
||||
class Webpage {
|
||||
public function about(array $params): void {}
|
||||
}
|
||||
|
||||
$routes = [
|
||||
Route::add('GET', 'about', Webpage::class.'@about'),
|
||||
];
|
||||
|
||||
$expect = [
|
||||
[
|
||||
'method' => 'GET',
|
||||
'path' => 'about',
|
||||
'class' => 'Site\Test\Webpage@about',
|
||||
'params' => [],
|
||||
]
|
||||
];
|
||||
|
||||
$test->assertNotNull($routes);
|
||||
$test->assertEquals($expect, $routes);
|
||||
});
|
||||
});
|
||||
|
||||
$test->printSummary();
|
||||
Reference in New Issue
Block a user