2015-04-16 7 views
5

Nie mogę już używać getMainContext() i getSubcontext ($ alias) w wersji 3. Jaki jest sposób komunikacji między kontekstem w wersji 3. Czy cechy kontekstu są jedynym sposobem?Jak komunikować się między kontekstami w behat 3?

# behat.yml 
default: 
    suites: 
     guest_features: 
       paths: [ %paths.base%/features/web ] 
       filters: { role: guest } 
       contexts: [ GuestContext ] 

     user_features: 
      paths: [ %paths.base%/features/web ] 
      filters: { role: member } 
      contexts: [ MemberContext ] 

     groupled_features: 
      paths: [ %paths.base%/features/web ] 
      filters: { role: grouplead} 
      contexts: [ GroupleadContext ] 

     admin_features: 
      paths: [ %paths.base%/features/web ] 
      filters: { role: admin } 
      contexts: [ AdminContext ] 

extensions: 
    Behat\MinkExtension: 
     base_url: http://ollo.com 
     browser_name: firefox 
     selenium2: 
       capabilities: { "browser": "firefox", "version": "24"} 
     goutte: ~ 

Odpowiedz

10

Można użyć scenario hooks, jak wyjaśniono na stronie "Accessing contexts from each other" dokumentacja:

use Behat\Behat\Context\Context; 
use Behat\Behat\Hook\Scope\BeforeScenarioScope; 

class MemberContext implements Context 
{ 
    /** @var GuestContext */ 
    private $guestContext; 


    /** @BeforeScenario */ 
    public function before(BeforeScenarioScope $scope) 
    { 
     // Get the environment 
     $environment = $scope->getEnvironment(); 
     // $environment is an instance of 
     //  Behat\Behat\Context\Environment\InitializedContextEnvironment 


     // Get all the contexts you need in this context 
     $this->guestContest = $environment->getContext('GuestContext'); 
     // $this->guestContest is the instance of GuestContext 
    } 
} 
+0

Ten link działa: http://behat.org/en/latest/cookbooks/accessing_contexts_from_each_other.html - dla mnie to działa po wyjęciu z pudełka, więc ta odpowiedź powinna być zaakceptowana – drupality

+0

@drupalność linków w odpowiedzi używanych do pracy w momencie opublikowania odpowiedzi, ale w międzyczasie wydaje się, że układ dokumentacji i serwer zostały zmienione. Dziękuje za komentarz. Zaktualizowałem odpowiedź w nowych lokalizacjach. – axiac

+0

Przepraszam, że zapomniałem o możliwości edycji – drupality

Powiązane problemy