2017-04-16 8 views
0

私の( 'リソース' の試験ではnode.jsモカ:以前のローカルセットアップで定義された変数を再利用する方法()フック?

を更新し、私は私のテストでユーザーIDを再利用したい新しいユーザー

/** 
* root level hooks 
*/ 
before((done) => { 
    const newUser = new User({ 
    username: 'johndoe', 
    password: 'jdpwd', 
    email: '[email protected]', 
    mobileNumber: 123456789 
    }); 
    newUser.save((err) => { 
    // console.log('error: ', err); 
    done(); 
    }); 
}); 

を作成します。

describe('## Resource APIs',() => { 
const user = User.findOne({ username: 'johndoe' }); 
console.log('got user: ', user.id); 
    let resource = { 
    name: 'RS123', 
    description: 'RS123Description', 
    owner: user._id, <= should be the id of the newUser 
    private: true 
    }; 
    describe('# POST /api/v1/resources',() => { 
    it('should create a new resource', (done) => { 
     request(app) 
     .post('/api/v1/resources') 
     .send(resource) 
     .expect(httpStatus.OK) 
     .then((res) => { 
      expect(res.body.name).to.equal(resource.name); 
      expect(res.body.description).to.equal(resource.description); 
      resource = res.body; 
      done(); 
     }) 
     .catch(done); 
    }); 
    }); 
    ... 
}); 

が、ユーザー定義されていません..

どうすれば変更できますか? フィードバックありがとうございました

+0

動き、それを、前に実行して行わ呼び出して値を割り当てます。 – Gntem

+0

フィードバックのおかげで、私はあなたのコメントごとにしようとした後、私の質問を更新しました..私は多分間違っている...今は上限スコープに移動されていないですか? – erwin

+0

よろしくお願いいたします。 let newUser = new User({});前 ((行われる)=> { NEWUSER =新しいユーザー({ LETリソース= { 名: 'RS123'、 説明: 'RS123Description'、 所有者:newUser.id、 プライベート:真 } ; – erwin

答えて

1

あなたがthisを使用する前に、ブロック内の変数を宣言した場合、あなたはその治具のすべてのテストでそれを再利用することができます:アッパー範囲に

describe('create draft', function() { 
    before(function() { 
    this.user = ... 
    }); 
    it('....', function(){ 
     this.user .... 
    }); 
}); 
+0

ありがとうたくさんのアントニオ...それを得ました! – erwin

関連する問題