2017-10-20 85 views
0

我正在使用Yii2,並希望在我的驗收測試中包含燈具。在Codeception中使用燈具進行驗收測試的正確方法是什麼?

單元測試你夾具性狀添加到類,則返回夾具的陣列與所述固定裝置的方法,然後調用$this->loadFixtures()_before()方法,以及$this->unloadFixtures()_after()方法。這工作完美。

使用Cept驗收測試,不使用類,所以我不知道如何在這個過程中使用燈具。

隨着CEST文件,我試圖將fixtureTrait添加到Cest類,它沒有工作。我是否應該將夾具特徵添加到Cest文件?

因此,在驗收測試中使用燈具的正確方法是什麼?

+0

whattt?像這個問題真的是什麼? –

+0

我試圖重新提出這個問題 –

回答

0

經過大量的谷歌搜索,我找到了一個令人滿意的解決方案。

隨着CEPT文件,因爲它們不使用類,你必須包括在YAML配置Yii2模塊,但只有部分燈具。

在acceptance.suite.yml:

modules: 
    enabled: 
     - WebDriver 
     - Yii2: 
      part: 
       - init 
       - fixtures 
      transaction: false 

我使用硒,所以我也啓用了模塊的webdriver。我也發現有必要設置transaction: false,否則我的登錄無效。
(可能由於交易數據不可用於網絡請求)

然後我必須運行build命令以使$I->haveFixtures()方法可用。

codeception build 

我現在可以包括燈具作爲CEPT的一部分文件這樣的:

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文件。顯然,它應該像向Cest類中添加_fixtures()方法一樣簡單,但我沒有嘗試過。

下面是一些有用的鏈接:

Codeception Yii2 Fixtures Documentation

Similar StackOverflow issue 45881907

Yii2 Fixtures Documentation

相關問題