在 codeception 功能测试中,seeInDatabase 从 laravel 起不起作用
In codeception functional test seeInDatabase not works from laravel
我正在使用 codeception
在 laravel 5.2
中进行测试。
这是我的 codeception.yml
文件:
actor: Tester
paths:
tests: tests_codecept
log: tests_codecept/_output
data: tests_codecept/_data
support: tests_codecept/_support
envs: tests_codecept/_envs
settings:
bootstrap: _bootstrap.php
colors: false
memory_limit: 1024M
extensions:
enabled:
- Codeception\Extension\RunFailed
modules:
config:
Db:
dsn: 'mysql:host=localhost;dbname=kartice_test'
user: '*******'
password: '*******'
dump: tests_codecept/_data/dump.sql
populate: true
cleanup: true
reconnect: true
这里是 functional.suite.yml
文件:
class_name: FunctionalTester
modules:
enabled:
# add framework module here
- \Helper\Functional
- Asserts
- Laravel5:
environment_file: .env.testing
- Db
这是我的 test method
:
public function provera_dodavanja_novog_klijenta(FunctionalTester $I)
{
$this->authenticate($I);
$I->amOnPage('/kancelarija/komitenti/create');
$I->see('Kreiranje novog komitenta');
$I->fillField('input[name=komitent_code]', 'kom1');
$I->fillField('input[name=komitent_name]', 'Komitent 1');
$I->click('btnSave');
$I->seeInDatabase('komitenti', ['code' => 'kom1', 'name' => 'Komitent 1']);
$I->see('Komitent Komitent 1 je uspešno kreiran.');
}
运行 功能测试失败并显示消息:
Step I see in database "komitenti",{"code":"kom1","name":"Komitent 1"}
Fail No matching records found for criteria {"code":"kom1","name":"Komitent 1"} in table komitenti
Failed asserting that 0 is greater than 0.
我做错了什么?
我看到了问题 Codeception seeInDatabase() doesn't work for me 但这对我没有帮助。
您可能应该使用 seeRecord
方法而不是 seeInDatabase
。我不知道为什么,但对我来说,第一个有效,第二个无效。
我使用 gulp tdd 并且在测试表单时遇到此错误。
请检查:
您已将此添加到请求
<YourFormRequest>use App\Http\Requests\<YourFormRequest>;
确保您的 table 模型是可批量分配的
protected $fillable = ['tableField1', 'tableField2']
我正在使用 codeception
在 laravel 5.2
中进行测试。
这是我的 codeception.yml
文件:
actor: Tester
paths:
tests: tests_codecept
log: tests_codecept/_output
data: tests_codecept/_data
support: tests_codecept/_support
envs: tests_codecept/_envs
settings:
bootstrap: _bootstrap.php
colors: false
memory_limit: 1024M
extensions:
enabled:
- Codeception\Extension\RunFailed
modules:
config:
Db:
dsn: 'mysql:host=localhost;dbname=kartice_test'
user: '*******'
password: '*******'
dump: tests_codecept/_data/dump.sql
populate: true
cleanup: true
reconnect: true
这里是 functional.suite.yml
文件:
class_name: FunctionalTester
modules:
enabled:
# add framework module here
- \Helper\Functional
- Asserts
- Laravel5:
environment_file: .env.testing
- Db
这是我的 test method
:
public function provera_dodavanja_novog_klijenta(FunctionalTester $I)
{
$this->authenticate($I);
$I->amOnPage('/kancelarija/komitenti/create');
$I->see('Kreiranje novog komitenta');
$I->fillField('input[name=komitent_code]', 'kom1');
$I->fillField('input[name=komitent_name]', 'Komitent 1');
$I->click('btnSave');
$I->seeInDatabase('komitenti', ['code' => 'kom1', 'name' => 'Komitent 1']);
$I->see('Komitent Komitent 1 je uspešno kreiran.');
}
运行 功能测试失败并显示消息:
Step I see in database "komitenti",{"code":"kom1","name":"Komitent 1"}
Fail No matching records found for criteria {"code":"kom1","name":"Komitent 1"} in table komitenti
Failed asserting that 0 is greater than 0.
我做错了什么?
我看到了问题 Codeception seeInDatabase() doesn't work for me 但这对我没有帮助。
您可能应该使用 seeRecord
方法而不是 seeInDatabase
。我不知道为什么,但对我来说,第一个有效,第二个无效。
我使用 gulp tdd 并且在测试表单时遇到此错误。 请检查:
您已将此添加到请求
<YourFormRequest>use App\Http\Requests\<YourFormRequest>;
确保您的 table 模型是可批量分配的
protected $fillable = ['tableField1', 'tableField2']