我正在运行一个代码测试,测试表单的前端提交。我可以通过简单的验收测试来做到这一点:
class ContactCest {
public function testContactForm(AcceptanceTester $I) {
}
}
但现在我想检查数据库以确保已保存有关提交的正确数据。在单元测试中,我可以调用$I->assertEquals($expected, $found)
,但这似乎在AcceptanceTester类中不可用。如果我把测试变成单元测试类,那么其他一切都会失败。
有没有办法在这个类中执行assertEquals()或其他断言?
我发现AcceptanceTester是一个由代码构建的文件,它放在我的测试目录中并使用了这个特性:
use _generated\AcceptanceTesterActions;
我尝试添加额外的特性:
use _generated\UnitTesterActions;
但我失败了:
[RuntimeException] Action 'assertNotNull' can't be called
答案 0 :(得分:2)
您可以在acceptance.suite.yml
配置中启用模块,在验收测试中使用Asserts
module中的功能。
但在您的情况下,您只需使用$I->seeInDatabase()
即可。
您必须启用数据库模块并设置数据库连接:
modules:
enabled:
- Asserts
- DB:
dsn: 'mysql:host=localhost;dbname=testdb'
user: 'root'
password: ''
dump: 'tests/_data/dump.sql'
populate: true
cleanup: true
reconnect: true