2016-07-19 2 views
1

Я использую mocha для проверки моего api, проблема в том, что эта функция является асинхронной и набор тестов, который называется до того, как я получу результаты из функции, как я могу это преодолеть?Единичный тест с обещанием не работает

Я пытаюсь связать тест, например, следующий, который вызывает ошибку. Пустой набор тестов.

describe("Validations", function() { 

    var validator = require('../utils/validator'); 
    var isValid = null; 

    validator.validateJS() 
     .then(function (args) { 
      isValid = args; 
     }).then(function(){ 
     it("init validations ", function() { 
      expect(isValid).to.equal('valid1'); 
     }); 
    }); 

}) 

Мое начальное использование, как после чего, если вызов этого и ожидать внутри до ответа (IsValid) исходит из обетования, любая идея?

describe("Validations", function() { 

    var validator = require('../utils/validator'); 
    var isValid = null; 



    validator.validateJS() 
     .then(function (args) { 
      isValid = args; 

     }).done(); 

    it("init validations ", function() { 
     expect(isValid).to.equal('valid1'); 
    }); 

}) 
+0

Является ли validatJS промахом здесь или он находится в вашем коде? –

+0

@VassilisPits - опечатка, спасибо :) любая идея, как запустить этот тест? –

+1

Почему бы не использовать mocha 'before()'? – Fissio

ответ

1

Используйте mocha's before().

describe("Validations", function() { 

    var validator = require('../utils/validator'); 
    var isValid = null; 

    before(function(done) { 
     validator.validateJS() 
     .then(function (args) { 
      isValid = args; 
      done(); 
     }) 
    }) 

    it("init validations ", function() { 
     expect(isValid).to.equal('valid1'); 
    }); 
}) 
Смежные вопросы