У меня проблемы с получением кодовых восприятий seeInDatabase()
для работы.Это мой Cest:
public function testContactMailCheckbox(AcceptanceTester $I) {
$I->scrollTo("#adminMailSettingsForm", 0, -200);
$I->seeInDatabase("pib_users", [
"user_email" => "admin-cest@example.org",
"user_receive_contact_notification" => 0
]);
$I->click("//label[@for='contactMailNotification']", "#adminMailSettingsForm");
$I->waitForJS("return $.active == 0;",10);
$I->wait(100);
$I->seeInDatabase("pib_users", [
"user_email" => "admin-cest@example.org",
"user_receive_contact_notification" => 1
]);
}
Первый seeInDatabase()
проходит, все хорошо.Я могу убедиться, что это утверждение seeInDatabase-Assertion работает правильно, изменив данные по умолчанию в моем дампе базы данных.Когда я изменяю данные по умолчанию на "user_receive_contact_notification" => 1
, первый seeInDatabase
терпит неудачу, что означает, что он работает правильно.
Я использую $I->wait(100)
, чтобы убедиться, что нет проблем синхронизации.В течение этого промежутка времени я могу проверить через phpMyAdmin, что строка действительно обновлена правильно.Это означает, что тест должен пройти.
Вот мой Db-config:
actor: AcceptanceTester
modules:
enabled:
- WebDriver:
url: 'http://pib.local/'
window_size: false # disabled in ChromeDriver
port: 5555
browser: chrome
capabilities:
chromeOptions:
args: ["--headless", "--no-sandbox", "--disable-gpu", "--window-size=1920,1080"]
- \Helper\Acceptance
- Sequence
- \Helper\DbHelper
config:
\Helper\DbHelper:
user: "root"
password: ""
dsn: "mysql:host=localhost;dbname=pib"
cleanup: true
dump: 'tests/database_dump_tests.sql'
populate: true
reconnect: true
step_decorators: ~
Мой DbHelper содержит только одну функцию:
class DbHelper extends \Codeception\Module\Db
{
public function putInDatabase($table, $data, $insertOnlyIfNotExisting = true) {
// if ignoreDuplicateError is true, only execute insert when not existing already
if($this->countInDatabase($table, $data) == 0 | !$insertOnlyIfNotExisting) {
$this->_insertInDatabase($table, $data);
}
}
}
Это может быть связано с этим вопросом .Однако я не использую Laravel, так что использование seeRecord()
-помогателя мне не поможет.