Я тоже использую тост, и в основном я использую его для тестирования методов модели. Для этого сначала обрежьте все табличные значения, вставьте предварительно определенное значение, а затем получите его. Вот пример теста, который я использовал в своем приложении:
class Jobads_tests extends Toast
{
function Jobads_tests()
{
parent::Toast(__FILE__);
// Load any models, libraries etc. you need here
$this->load->model('jobads_draft_model');
$this->load->model('jobads_model');
}
/**
* OPTIONAL; Anything in this function will be run before each test
* Good for doing cleanup: resetting sessions, renewing objects, etc.
*/
function _pre()
{
$this->adodb->Execute("TRUNCATE TABLE `jobads_draft`");
}
/**
* OPTIONAL; Anything in this function will be run after each test
* I use it for setting $this->message = $this->My_model->getError();
*/
function _post()
{
$this->message = $this->jobads_draft_model->display_errors(' ', '<br/>');
$this->message .= $this->jobads_model->display_errors(' ', '<br/>');
}
/* TESTS BELOW */
function test_insert_to_draft()
{
//default data
$user_id = 1;
//test insert
$data = array(
'user_id' => $user_id,
'country' => 'ID',
'contract_start_date' => strtotime("+1 day"),
'contract_end_date' => strtotime("+1 week"),
'last_update' => time()
);
$jobads_draft_id = $this->jobads_draft_model->insert_data($data);
$this->_assert_equals($jobads_draft_id, 1);
//test update
$data = array(
'jobs_detail' => 'jobs_detail',
'last_update' => time()
);
$update_result = $this->jobads_draft_model->update_data($jobads_draft_id, $data);
$this->_assert_true($update_result);
//test insert_from_draft
$payment_data = array(
'activation_date' => date('Y-m-d', strtotime("+1 day")),
'duration_amount' => '3',
'duration_unit' => 'weeks',
'payment_status' => 'paid',
'total_charge' => 123.45
);
$insert_result = $this->jobads_model->insert_from_draft($jobads_draft_id, $payment_data);
$this->_assert_true($insert_result);
//draft now must be empty
$this->_assert_false($this->jobads_draft_model->get_current_jobads_draft($user_id));
}
}
Я использую AdoDB в своем приложении, но не путайтесь с этим. Вы можете сделать $this->db
внутри тестового контроллера после загрузки библиотеки базы данных. Вы можете поместить его в автозагрузку, чтобы он автоматически загружался.
Смотрите, что в моем коде перед запуском теста таблица усекается. После запуска я получу любую ошибку, которая может произойти. Я утверждаю для предопределенной вставки и обновления. Использование Toast для тестирования модели позволит вам убедиться, что метод модели выполняет именно ту задачу, которую вы хотите. Сделайте тест, который вам нужен, и убедитесь, что вы охватили все возможности ввода и вывода значений.