首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在共同欺骗中,使用带有验收测试的固定装置的正确方法是什么?

在共同欺骗中,使用带有验收测试的固定装置的正确方法是什么?
EN

Stack Overflow用户
提问于 2017-10-20 16:07:55
回答 1查看 942关注 0票数 1

我正在使用Yii2,并且希望在我的验收测试中包括一些固定装置。

通过单元测试,您可以将夹具特性添加到类中,然后使用fixtures方法返回一个夹具数组,然后从_before()方法调用_before(),从_after()方法调用$this->unloadFixtures()。这工作得很好。

对于Cept验收测试,类是不使用的,所以我不知道您将如何在这个过程中使用夹具。

对于Cest文件,我尝试将fixtureTrait添加到Cest类中,但它没有工作。我是否应该将夹具特性添加到Cest文件中?

因此,在验收测试中使用夹具的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-24 09:02:00

在做了大量搜索之后,我找到了一个令人满意的解决方案。

对于Cept文件,因为它们不使用类,所以您必须在YAML配置中包含Yii2模块,但只能包含固定部分。

在acceptance.suite.yml中:

代码语言:javascript
复制
modules:
    enabled:
        - WebDriver
        - Yii2:
            part:
                - init
                - fixtures
            transaction: false

我正在使用selenium,所以我还启用了WebDriver模块。我还发现有必要设置transaction: false,否则我的登录就无效了。

(可能是由于web请求无法获得事务数据)

然后,我必须运行build命令,以使$I->haveFixtures()方法可用。

代码语言:javascript
复制
codeception build

因此,我现在可以将夹具作为Cept文件的一部分:

代码语言:javascript
复制
use tests\fixtures\DBAddressFixture;
use tests\fixtures\DBCustomerFixture;
use tests\fixtures\OAuthClientsFixture;

/* @var $scenario Codeception\Scenario */
$I = new AcceptanceTester($scenario);
$I->wantTo("Check that the account information page exists and works");

$I->haveFixtures([
    'customer' => DBCustomerFixture::className(),
    'address' => DBAddressFixture::className(),
    'auth' => OAuthClientsFixture::className()
]);

关于Cest档案。显然,它应该像将_fixtures()方法添加到Cest类一样简单,尽管我没有尝试过。

以下是一些有用的链接:

协同欺骗Yii2夹具文档

CodeCeption固定装置问题4099

类似的StackOverflow 45881907期

Yii2夹具文档

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46853088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档