2016-09-14 2 views
1

Я хочу написать тестовый пример с использованием phpunit для следующей функции модели. Я начинаю тестировать единицы измерения, пожалуйста, советую мне.Как править единичный тестовый код с издевательством для класса модели

public function checkUserEmailExist($email) 
{ 

    $query = \registry::getDBHandler()->prepare("SELECT email FROM users WHERE email = :EMAIL"); 
    $query->bindValue(":EMAIL", $email); 

    try{ 
     $query->execute(); 
     $result = ($query->fetchColumn()); 
    } catch(PDOException $e) { 
     \debug::error('MySQL errno ' . $e->getCode() . ': "' . $e->getMessage() . '" when executing: ' . $query->queryString); 
    } 

    return $result; 
} 
+0

Что такое fetchColumn return? объект или массив? –

+0

@ пользователь3360140: объект. он возвращает адрес электронной почты –

+0

, так что если вы делаете echo $ result-> email, вы должны получить адрес электронной почты? правильно? –

ответ

0

Прежде всего, вам нужно подготовить тестовый стенд для тестирования базы данных с некоторыми тестовыми данными. Вы можете сделать это, следуя этой обучающей программе:

https://phpunit.de/manual/current/en/database.html

Тогда вы можете написать тест. Допустим, ваш метод checkUserEmailExist относится к классу Authentication. Тогда ваш тест будет выглядеть следующим образом:

<?php 
class authenticationTest extends PHPUnit_Extensions_Database_TestCase 
{ 
    /** 
    * @test 
    */ 
    public function testCheckUserEmailExist() 
    { 
     $actual = '[email protected]'; 
     $auth = new Authentication(); 
     $expected= $auth->checkUserEmailExist($actual); 
     $this->assertEquals($expected->email, $actual); 
    } 
} 

Вы должны убедиться, что [email protected] электронная почта существует в users таблицу тестовой базы данных.

Смежные вопросы