【问题标题】:Cucumber.js TypeError: Cannot read property 'pending' of undefinedCucumber.js TypeError:无法读取未定义的属性“待定”
【发布时间】:2015-07-05 05:45:33
【问题描述】:

我正在使用 Node.js、cucumber.js(全局安装)和 Web Storm IDE 以及一个简单的加号场景,我收到以下错误。除了 callback.pending 之外,步骤定义没有其他任何内容。 请问有什么想法吗?

TypeError:无法读取未定义的属性“待定” 在世界。 (/Users/wfn936/Repos/customer-svc/features/step_definitions/customer.js:6:17) 在 Object.invoke (/usr/local/lib/node_modules/cucumber/lib/cucumber/support_code/step_definition.js:88:14) 在 Object.execute (/usr/local/lib/node_modules/cucumber/lib/cucumber/ast/step.js:161:22) 在 Object.acceptVisitor (/usr/local/lib/node_modules/cucumber/lib/cucumber/ast/step.js:147:12) 在 Object.executeStep (/usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:296:12) 在 Object.processStep (/usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:291:14) 在 /usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:129:16 在 callUserFunctionAndBroadcastAfterEvent (/usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:153:9) 在迭代(/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:55:11) 在 /usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:62:11 在 Object.hear (/usr/local/lib/node_modules/cucumber/lib/cucumber/listener.js:8:9) 在 /usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:179:52 在 processItem (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:61:9) 在迭代(/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:53:11) 在 /usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:62:11 在 Object.hear (/usr/local/lib/node_modules/cucumber/lib/cucumber/listener.js:8:9) 在 /usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:179:52 在 processItem (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:61:9) 在迭代(/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:53:11) 在 /usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:62:11 在 Object.hear (/usr/local/lib/node_modules/cucumber/lib/cucumber/listener.js:8:9) 在 /usr/local/lib/node_modules/cucumber/lib/cucumber/runtime/ast_tree_walker.js:179:52 在 processItem (/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:61:9) 在迭代(/usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:53:11) 在 /usr/local/lib/node_modules/cucumber/lib/cucumber/type/collection.js:62:11 在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;

【问题讨论】:

  • 类似的测试对我来说运行良好。你的黄瓜版本是什么?从系统终端运行时,相同的功能是否有效?

标签: javascript webstorm cucumberjs


【解决方案1】:

这个错误

TypeError:无法读取 World 中未定义的属性“待定”。 (/Users/wfn936/Repos/customer-svc/features/step_definitions/customer.js:6:17) 在...

当捕获的参数数量与提供的回调中的参数不匹配时发生

但在你的情况下,一切看起来都很好。

我建议你重新安装黄瓜(也许) 再次检查您的功能和步骤定义文件

  • 它们看起来真的像您发布的那样吗?
  • 您是否使用这些文件(或者可能是其他具有其他内容的文件)

注意:

  • /^I have number (\d+) and (\d+)$/ 这样的正则表达式必须有回调function (arg1, arg2, callback) {}

  • /^I have number (\d+)$/ 这样的正则表达式必须有回调function (arg1, callback) {}

【讨论】:

    猜你喜欢
    • 2017-10-14
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    相关资源
    最近更新 更多