2016-03-18 21 views
2

Codeception ile ilk kabul testimi yapıyorum. Ben wait() veya waitForElement() ile benim testini çalıştırdığınızdaCodeception: [RuntimeException] Undefined yöntemine çağrı AcceptanceTester :: wait

, bu mesaj çıktı: İşte

[RuntimeException] Call to undefined method AcceptanceTester::wait 

olan benim acceptance.yml

# Codeception Test Suite Configuration 
# 
# Suite for acceptance tests. 
# Perform tests in browser using the WebDriver or PhpBrowser. 
# If you need both WebDriver and PHPBrowser tests - create a separate  suite. 

class_name: WebGuy 
modules: 
enabled: 
    - WebDriver 
    - \Helper\Acceptance 
config: 
    WebDriver: 
     url: 'http://rh.dev' 
     browser: 'firefox' 

Ve burada benim sınavım:

$I = new AcceptanceTester($scenario); 
$I->wantTo('Register my profile for the first time'); 
$I->amOnPage('/register'); 
$I->fillField('name', $person->name); 
$I->wait(3); // secs 
$I->fillField('lastName', $person->lastName); 

official doc'den aldım

vendor/bin/codecept build 

sorun nedir: Ben de yürütmek için emin oldum?

+0

Yapılandırma dosyanız WebGuy beyan ve Codeception 2.0 (veya daha eski) yapılandırma tarzını kullanır, ancak AcceptanceTester sizin testte kullanılır. İlişkili değiller. – Naktibalda

+0

Anlamadım. Kodeksleme konusunda yeniyim. Lütfen detay verir misin? –

cevap

1

Değişim class_name: WebGuy

+0

evet, bu hile yaptı! Tx –

2

class_name: AcceptanceTester için eksik wait() yöntemi ile benzer bir sorun vardı. Sorun, WebDriver yerine PhpBrowser kullanıyordu ve PhpBrowser bu yöntemi sağlamıyordu. Sizin test sınıfında kendiniz uygulamak oldukça basittir:

public function wait($seconds) { 
    sleep($seconds); 
} 
+1

Hiçbir şey yapmaması daha iyidir, çünkü fonksiyonunuz testin X saniye sürmesine gerek kalmaz. – Naktibalda

+0

@Naktibalda Neden iyi bir nedenim olmadığından emin misiniz? Örneğin, e-posta aktarımı için test posta sunucumu bekleyebilirim. Tarayıcının dışında olan her şeyi bekleyebilirim. WebDriver'da – gvlasov

+0

wait(), tarayıcıda gecikmeli etkiler içindir. PhpBrowser kullanıldığında böyle bir etki yoktur. Her iki modülden beklemeniz gerektiğinde farklı bir yöntem adı kullanmak daha iyi olur. – Naktibalda

İlgili konular