Я пытаюсь создать функциональный тест в коде восприятия, где я могу проверить, была ли допущена таблица базы данных, вот этот тест:
<?php
$I = new FunctionalTester($scenario);
$I->am('A guest');
$I->wantTo('Sign up for an account');
$I->amOnPage('auth/register');
$I->fillField('username', 'testuser');
$I->fillField('first_name', 'test_name');
$I->fillField('last_name', 'test_last');
$I->fillField('email', '[email protected]');
$I->fillField('password', 'test');
$I->click('Sign up!');
$I->seeInDatabase('users', ['username' => 'testuser', 'first_name' => 'test_name', 'last_name' => 'test_last', 'email' => '[email protected]', 'slug' => 'testuser']);
Вот файл yaml:
class_name: FunctionalTester
modules:
enabled: [Filesystem, FunctionalHelper, Db, PhpBrowser]
config:
Db:
dsn: 'mysql:host=localhost;dbname='db''
user: 'root'
password: 'pass!'
dump: 'tests/_data/dump.sql'
populate: true
cleanup: false
PhpBrowser:
url: 'http://localhost:8000'
Я получаю ошибку:
Couldn't see in database "users", {"username":"testuser","first_name":"test_name","last_name":"test_last","email":"[email protected]","slug":"testuser"}:
No matching records found
Failed asserting that '0' is greater than 0.
Однако, когда я заполняю форму в браузере, код работает, и пользователь регистрируется
Вы должны попытаться использовать Laravel4/Laravel5
(вы не упомянули версию Laravel), а затем использовать seeRecord метод. У меня точно такая же проблема с grabFromDatabase
— это не работает, но когда я использую grabRecord
из модуля Laravel все работает нормально.
Других решений пока нет …