Функция модульного тестирования, которая содержит обещания - PullRequest
0 голосов
/ 31 мая 2019

У меня есть эта функция:

function _init()
{ 
    return _getNetDesc() // this is a promise
    .then(data => {

       // do something
    })  
    .then(() => {

        return _getNetOperation(); // this is a promise
    })
    .then( () =>{
        return _getNetNodeList(); // this is a promise
    }) 

    .catch( e =>
    {
        logger.error("JZW","init",e);

    });
}

Чтобы проверить, если эта функция вызывает, я написал в mocha/sinon/chai:

it("should throw eception for no GW", async () => {
        _getNetDesc = sinon.stub().throws();
        const test = await jzw.init;
        expect(test).to.be.rejected;

    });

Но я получаю

 TypeError: [Function: _init] is not a thenable.

1 Ответ

0 голосов
/ 31 мая 2019

Вам не хватает, чтобы вызвать функцию и отклонить обещание:

it("should throw eception for no GW", async () => {
  _getNetDesc = sinon.stub().returns(Promise.reject(...)); // returns a rejected promise
  const test = await jzw.init(); // call the function to get the promise
  expect(test).to.be.rejected;
});
...