Тестирую класс для пакетной вставки в базу.
Создаю для теста временную таблицу (в setUp или в методе теста, не важно)
Yii::$app->db->createCommand(
'CREATE TEMPORARY TABLE {{%table_loading}} SELECT * FROM {{%table}} LIMIT 0'
)->execute();
После некоторых операций проверяю наличие:
$I->canSeeInDatabase('table_loading', ['brand_name'=>'brand_1', 'article_name'=>'article_1', 'no_in_part'=>1]);
В результате этого утверждения получаю ошибку
Base table or view not found: 1146 Table 'mydatabase.table_loading' doesn't exist
Для проверки в том же тесте дописал (new \yii\db\Query)->from('{{%table_loading}}')->count() - работает исправно. Как я понимаю, у codeception у модуля Db одно подключение, а у Yii::$app->db другое, соответсвенно потому временная таблица и не доступна.
Если мои догадки верны, то вопрос к гуру - как тестировать в таких ситуациях, какие есть good practice?