2017-05-16 12 views
0

を実行したとき、私は、これは私のフレームワークのツリー内例外TypeError:私はcucumber.js

- FM_cucumber 
    - features 
    - steps 
     * my_steps.js 
    * login.feature 
    - node_modules 
    - test 
    * conf.js 
    * package.json 

で、分度器での作業私の枠組みに

をキュウリを実装するプロパティを読み取ることができません「取得」未定義のです私my_steps.jsの私は、この

var steps = function(){ 
    this.Given(/^Open google$/, function() { 
    this.browser.get('http://www.google.com').then(function(result){ 
     callback(result); 
     }); 
    }); 
    }; 
module.exports = steps; 

は、だから私は、コマンドキュウリを使用しています。この機能を実行する必要があります。私は私が私のFM_cucumberを持っていますが、私はcucumber.jsを実行した後、フォルダ内のよもちろんのはこの例外TypeErrorに

TypeError: Cannot read property 'get' of undefined 
    at World.<anonymous> (/Users/myname/Documents/FM_cucumber/features/steps/my_steps.js:4:19) 

が表示されているjsが誰もが私のコードで何かを間違ってSEですか?

答えて

0

これは、キュウバーJSのthis(世界)に分度器browser -objectをバインドしているためです。分派器はCucumberJSと組み合わせて自分自身で生きることができます。あなたのみ使用CucumberJS:

  • featurefiles
  • はfeaturefilesと(正規表現での)ステップの実装間の結合を作成する作成はフックが/

報告のためにそれを使用しますステップインプリメンテーション内のコードは、ネイティブアトラクターの構文にすることができます。だから、あなたのための問題、here

はそれが

をホープ参照、 browser.get()が結果を持っていないという事実に注意して、この

var steps = function(){ 
    this.Given(/^Open google$/, function() { 
    browser.get('http://www.google.com') 
     .then(function(result){ 
     callback(result); 
     }); 
    }); 
    }; 
module.exports = steps; 

にこの

var steps = function(){ 
    this.Given(/^Open google$/, function() { 
    this.browser.get('http://www.google.com').then(function(result){ 
     callback(result); 
     }); 
    }); 
    }; 
module.exports = steps; 

を変更