2016-08-10 3 views
0

У меня есть приложение 3.0.15, и я следую этому tutorial при создании моих первых тестов Behat.Как называть Behat шаг программным путем? Предупреждение: Отсутствует аргумент 2 для Behat Behat Definition Call Given :: __ construct()

Код:

/** 
* @When I go to see akaneo product page for :country written in :language language    
*/ 
public function findOrCreateProductForCountryAndVisitIt($country, $language) 
{ 
    global $user; 
    $node = new stdClass; 
    $node->title = 'Test Product'; 
    $node->type = 'akaneo_product'; 
    node_object_prepare($node); 
    $node->uid = $user->uid; 
    $node->status = 1; 
    $node->language = $language; 
    #load domain id for country 
    $result = db_select('domain', 'd') 
     ->fields('d', array('domain_id')) 
     ->condition('subdomain', strtolower($country) . '_schiller.%', 'LIKE') 
     ->execute() 
     ->fetchAssoc(); 



    if (empty($result)) { 
     throw new Exception("Cannot find subsidiary for country code: $country"); 
    } 

    $node->domains = array(
     $result['domain_id'] => $result['domain_id'] 
    ); 

    $node = $this->nodeCreate($node); 

    return new Given('I go to node/' . $node->nid); 

} 

Выход:

Warning: Missing argument 2 for Behat\Behat\Definition\Call\Given::__construct(), called in features/bootstrap/FeatureContext.php on line 435 and defined in vendor/behat/behat/src/Behat/Behat/Definition/Call/Given.php line 27 
│ 
╳ Unable to access the response content before visiting a page (Behat\Mink\Exception\DriverException) 
│ 
└─ @AfterStep # ScreenshotContext::logResponseAfterFailedStep() 

То, что я должен передать в качестве параметра вызываемую застройщик?

+0

Как ваш шаг выглядеть? Можете ли вы добавить код? – lauda

+0

Добавлено больше кода – drupality

ответ

1

Цепочные шаги в Behat не возможны. 3. Если вы хотите повторно использовать некоторый код, просто следуйте регулярному подходу OOP - извлеките общий код в отдельный метод или класс.

Вы найдете объяснение для удаления здесь: https://github.com/Behat/Behat/issues/546#issuecomment-45202991

+0

Итак, нет способа передать идентификатор созданного контента в пользовательский шаг на другой? – drupality

+0

Вы можете передать этот идентификатор в качестве параметра другому методу. –

+0

Точно :) Большое спасибо – drupality

Смежные вопросы