почему заглушка sinon возвращается неопределенной? - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь заглушить библиотечную функцию с помощью Sinon. Извините, не могу опубликовать точный код, но он выглядит примерно так, как показано ниже.

Библиотека, которую я пытаюсь заглушить library.js

async function a(input) {
    // make some api calls here
    returns input;
}
export async function b {
    const output = await a(123);
    // do some magic here with output
    // call again a
    returns a(output);
}

Мой файл тестового примера: sinon.js

import * as lib from 'library.js'

describe('', ()=>{
    it('', ()=>{
        sinon.stub(lib, 'b')
        .withArgs(123)
        .resolves(123)
    })
})

когда я запускаю этот код, моя заглушка возвращает undefined вместо ожидаемого вывода, который 123 Может кто-нибудь помочь мне выяснить, в чем дело, что я здесь делаю?

1 Ответ

0 голосов
/ 01 ноября 2019

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

describe('', () => {
  it('', () => {
    const mock = sinon.mock(lib);
    mock
      .expects('b').withArgs(123)
      .resolves(345);
    lib.b(123).then((c) => console.log(c));
  })
})

Это напечатает 345. Уверен, есть более элегантный способ, но это сработает.

...