私は単純なDatamapperクラスのテストを書いていますが、メソッドが正常に機能していることが分かりますが、テストに失敗し、エラー "Fatal error: Call to a member function fetchAll() on a non-object in C:\xampp\htdocs\Call log\tests\model_tests.php on line 13.
"が表示されます。私はその方法が機能することを確認することができるからです。ここでPHPの簡単なおとぎ話。テストが正常に動作しない
は、それはおそらく上erroringだというコードです:
function all() {
$calls = $this->pdo->query('SELECT * from calls');
return $calls->fetchAll();
}
ここに私のテストコードは次のとおりです。
class TestOfCallMapper extends UnitTestCase {
function testOfReturnsAll() {
$this->createSchema();
$mapper = Callmapper::getInstance();
$results = $mapper->all();
print_r($results);
}
private function createSchema() {
$mapper = CallMapper::getInstance();
$mapper->pdo->exec(file_get_contents('../database/create_schema.sql'));
}
private function destroySchema() {
$mapper = CallMapper::getInstance();
$mapper->pdo->exec(file_get_contents('../database/destroy_schema.sql'));
}
}
$test = new TestOfCallMapper('Test of CallMapper Methods');
$test->run(new HTMLReporter());
私はこれを行う場合は、それだけで正常に動作します:
$mapper = CallMapper::getInstance();
$test = $mapper->all();
print_r($test->fetchAll());
それが本当にオブジェクトであるかどうかを確認するために(のvar_dump)またはますprint_r()$テストしてください。 – oezi
'$ results'のvar_dumpの結果が何であったかを診断する方が簡単です(var_dumpは' bool(FALSE) 'の場合に何かを出力します) – cwallenpoole
テストページには何も出力されませんprint_rまたはvar_dump $ resultsを試します。もう一方のページでは、$ testのすべてのデータベースエントリを含む配列を出力します。 –