Я писал тест для простого класса 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 simpletest tomfoolery. Тест не проходит по методу работы
Вот код, который он якобы 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
Было бы легче диагностировать, если бы вы поставили результат var_dump из '$ results' (var_dump выдаст что-то в случае' bool (FALSE) ') – cwallenpoole
Он ничего не выводит на тестовую страницу, если Я пытаюсь выполнить print_r или var_dump $ results. На другой странице он выводит массив, содержащий все записи базы данных для $ test. –