我正在使用phpunit和Laravel进行一些测试。我有很多加密的数据库数据。
在我的一个测试中,我填写一个表单,一旦完成,就会使用
以下是代码:
在我的一个测试中,我填写一个表单,一旦完成,就会使用
Crypt::encrypt('来自字段的数据')
对数据进行加密。以下是代码:
$this->visit('/requests/create')
->seePageIs('/requests/create')
->type('FirstNameTest1', 'first_name')
->press('Create Request')
->see('The request has been created.');
// Fails here
$this->seeInDatabase('requests', ['first_name' => Crypt::encrypt('FirstNameTest1')]);
我收到了以下错误信息:
无法在数据库表[requests]中找到符合属性[{"first_name":"eyJpdiI6InFWbGJmSU9rR0NHMjFnMjR4QVVyalE9PSIsInZhbHVlIjoiaDBMcGNxYzdsRlhjNDd3M2E5OGxQbUVkaHhzdEpIOERDcytwQytzZUN4MD0iLCJtYWMiOiJlN2U2MzczYTlhMDgyYTMxOWJmMGQyZDU0MzFiMmZiZjhkMDM1ZjA2YWFhZGVkYTZhMGRkNGMzNDY0ZTAzMjZmIn0="}]的行。
我手动检查过创建后是否存在该记录,但并未显示出来。我记得读到过关于在运行测试时数据不持久化的问题,所以这是有道理的...但你能想到任何其他原因导致测试无法找到该记录吗?