Yii2:装载固定装置的具体功能测试(Yii2: loading fixtures for spec

2019-10-24 16:24发布

短版:使用Yii2高级应用模板和Codeception功能测试,是有办法只有一个特定的场景(CEST类)之前加载特定的组件?

(背景/侧面说明:我有一个模糊的感觉,我可能接近这个错误,因为可以说,如果测试应与问候被完全隔离,DB,他们应该是单元测试,而不是功能性的人。然而,由于在时间上的限制。项目我开始与功能测试,同时推迟单元测试。我测试一个REST API,并具有强烈​​依赖于测试数据,当数据被其他测试修改失败的情况。)

一种方法,我发现是写一个新的_support\ApiHelper扩展默认的类FixtureHelper并把loadFixtures()/unloadFixtures()的调用_before代替_beforeSuite() 然而,这使得每一个测试,这使得该套件的执行速度很慢之前所有灯具负载。

Answer 1:

我发现比在问题中所描述的一个更好的方法:扩展FixtureHelper类,并添加一个方法haveCleanDb它调用unloadFixtures()/loadFixtures() 然后,在CEST场景,我需要它,我把它在_before_after方法: $I->haveCleanDb() 这样一来,所有其他的测试仍然很快。



文章来源: Yii2: loading fixtures for specific functional tests