2015-04-26 2 views
2

Я использую Node.js, cucumber.js (глобально установлен) и Web Storm IDE с простым сценарием добавления номера, и я получаю следующую ошибку. Определение шага не имеет ничего другого, кроме callback.pending. любые мысли, пожалуйста?Cucumber.js TypeError: Не удается прочитать свойство 'pending' of undefined

TypeError: Cannot read property 'pending' of undefined at World. (/Users/wfn936/Repos/customer-svc/features/step_definitions/customer.js:6:17) at Object.invoke (/usr/local/lib/node_modules/cucumber/lib/cucumber/support_code/step_definition.js:88:14) at Object.execute (/usr/local/lib/node_modules/cucumber/lib/cucumber/ast/step.js:161:22) at Object.acceptVisitor (/usr/local/lib/node_modules/cucumber/lib/cucumber/ast/step.js:147:12) at Object.executeStep (/usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:296:12) at Object.processStep (/usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:291:14) at /usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:129:16 at callUserFunctionAndBroadcastAfterEvent (/usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:153:9) at iterate (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:55:11) at /usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:62:11 at Object.hear (/usr/local/lib/node_modules/cucumber/lib/cucumber/listener.js:8:9) at /usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:179:52 at processItem (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:61:9) at iterate (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:53:11) at /usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:62:11 at Object.hear (/usr/local/lib/node_modules/cucumber/lib/cucumber/listener.js:8:9) at /usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:179:52 at processItem (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:61:9) at iterate (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:53:11) at /usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:62:11 at Object.hear (/usr/local/lib/node_modules/cucumber/lib/cucumber/listener.js:8:9) at /usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:179:52 at processItem (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:61:9) at iterate (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:53:11) at /usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:62:11 at handleBeforeScenarioEvent (/Applications/WebStorm.app/Contents/plugins/CucumberJavaScript/lib/cucumberjs_formatter_nix.js:97:9)

Feature: As a math learner 
    I want to add two numbers 
    so that I can learn how to add 

    Scenario: 
    Given I have number 3 and 5 
    When I add them 
    Then I get 8 as result 

var myStepDefinitionsWrapper = function() { 
    this.Given(/^I have number (\d+) and (\d+)$/, function (arg1, arg2, callback) { 
     callback.pending(); 
    }); 

    this.When(/^I add them$/, function (callback) { 
     callback.pending(); 
    }); 

    this.Then(/^I get (\d+) as result$/, function (arg1, callback) { 
     callback.pending(); 
    }); 
}; 
module.exports = myStepDefinitionsWrapper; 
+0

Аналогичные испытания проходят отлично для меня. Какова ваша версия огурца? работает ли такая же функция при ее запуске с вашего системного терминала? – lena

ответ

1

Этой ошибка

TypeError: Cannot read property 'pending' of undefined at World. (/Users/wfn936/Repos/customer-svc/features/step_definitions/customer.js:6:17) at ...

происходит, когда количество захваченных аргументов не совпадает с аргументами в функции обратного вызова

Но в вашем случае все выглядит нормально.

Я предлагаю вам переустанавливать огурец (возможно) Проверить еще один раз, когда ваша функция и шаг файла определения

  • действительно ли они похожи на вас в курсе?
  • вы используете эти файлы (или могут быть другие с другим содержанием)

Примечание:

  • Regexps как /^I have number (\d+) and (\d+)$/ должны иметь обратные вызовы function (arg1, arg2, callback) {}

  • Regexps как /^I have number (\d+)$/ сусле имеют обратные вызовы function (arg1, callback) {}

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