這是測試數據庫持久性的簡單單元測試,無法使其工作。繼續收到錯誤消息。Laravel使用codeception進行測試:單元測試模型的save()方法不會持續
看起來像save()方法不能插入記錄到testdb,我改變斷言與測試數據庫中的現有記錄,它的工作原理。
$ this-> tester-> seeInDatabase('statuses',['name'=>'Status4']);
花了幾個小時的時間排除故障,沒有任何線索。
感謝, 傑克
There was 1 failure:
---------
1) UserTest: Saving status
Test tests\unit\App\UserTest.php:testSavingStatus
No matching records found for criteria {"name":"Status4"} in table statuses
Failed asserting that 0 is greater than 0.
#1 Codeception\Module\Db->seeInDatabase
#2 C:\MAMP\htdocs\noc\tests\_support\_generated\UnitTesterActions.php:3725
#3 C:\MAMP\htdocs\noc\tests\unit\App\UserTest.php:34
#4 App\UserTest->testSavingStatus
public function testSavingStatus()
{
$status = new Status();
$status->setName('Status4');
$status->save();
$this->assertEquals('Status4', $status->name);
$this->tester->seeInDatabase('statuses', ['name' => 'Status4']);
}
actor: Tester
paths:
tests: tests
log: tests/_output
data: tests/_data
support: tests/_support
envs: tests/_envs
settings:
bootstrap: _bootstrap.php
colors: false
memory_limit: 1024M
extensions:
enabled:
- Codeception\Extension\RunFailed
modules:
config:
Db:
dsn: 'mysql:host=localhost;dbname=testdb'
user: 'root'
password: 'root'
dump: tests/_data/dump.sql
populate: true
cleanup: false
reconnect: true
你使用Laravel模塊嗎?如果你這樣做,嘗試使用seeRecord方法http://codeception.com/docs/modules/Laravel5#seeRecord – Naktibalda
我可以稍後嘗試,但看起來不像記錄已插入。 Seeindatabase適用於現有記錄。 –