2017-10-20 32 views
1

私は約束のテストを実行しようとしていますが、タイムアウトの限界を超えていると主張して失敗し、完了欄を持っていることを確認することを提案します。モカ、nodejs約束のテストが完了しなかったために完了できません

これは私のテストコードの一部です:

$configurations 
    .updateConfiguration(configurations_driver.NOT_VALID_MODEL) //invalid model 
    .then(function() { 
     done(new Error("Expected INVALID_MODEL error but got OK")); 
    }, function (error) { 
     chai.assert.isNotNull(error); 
     chai.expect(error.message).to.be.eq("INVALID_MODEL_ERROR"); 
     chai.expect(error.kind).to.be.eq("ERROR_KIND"); 
     chai.expect(error.path).to.be.eq("ERROR_PATH"); 
     done(); 
    }) 
    .catch(done); 
}); 

私はあなたが見ることができるようにそこにすべて完了句を持っているので、私は、テストまたは構造で何か欠けている場合、私は知りませんちょうど間違っている。

答えて

4

あなたがreturnと約束している限り、Mochaはdoneを使用せずにテストの約束をサポートします。

const expect = chai.expect 

it('should error', function(){ 
    return $configurations 
    .updateConfiguration(configurations_driver.NOT_VALID_MODEL) //invalid model 
    .then(()=> { throw new Error("Expected INVALID_MODEL error but got OK")}) 
    .catch(error => { 
     expect(error).to.not.be.null; 
     expect(error.message).to.equal("INVALID_MODEL_ERROR"); 
     expect(error.kind).to.equal("ERROR_KIND"); 
     expect(error.path).to.equal("ERROR_PATH"); 
    }) 
}) 

はまた、より多くの標準的なチャイアサーション/期待のような約束のテストを行うためにchai-as-promisedを見てください。

chai.should() 
chai.use(require('chai-as-promised')) 

it('should error', function(){ 
    return $configurations 
    .updateConfiguration(configurations_driver.NOT_VALID_MODEL) 
    .should.be.rejectedWith(/INVALID_MODEL_ERROR/) 
}) 
ノード7.6+環境で

またはあなたがbabel/babel-registerを持ってどこにもasync/await約束ハンドラ

it('should error', async function(){ 
    try { 
    await $configurations.updateConfiguration(configurations_driver.NOT_VALID_MODEL) 
    throw new Error("Expected INVALID_MODEL error but got OK")}) 
    } catch (error) { 
    expect(error).to.not.be.null; 
    expect(error.message).to.equal("INVALID_MODEL_ERROR"); 
    expect(error.kind).to.equal("ERROR_KIND"); 
    expect(error.path).to.equal("ERROR_PATH"); 
    } 
}) 
を利用することができます
関連する問題