Как получить возвращаемое значение, которое вызываемая функция получает от другой функции? - PullRequest
0 голосов
/ 26 сентября 2018

Например, у меня есть две функции:

function functionOne() {
    var a = 1;
    var b = 2;
    var sum = a + b;

    return sum;
}

function functionTwo() {
    var receivedSum = functionOne();
    console.log('just do something with ' + receivedSum);
}

Я хочу проверить functionTwo и мне нужно как-то получить значение receiveSum.Является ли это возможным?Помогут ли мне Sinon.js или другие библиотеки?

1 Ответ

0 голосов
/ 26 сентября 2018

Лучшей практикой является тестирование черного ящика, но можно обернуть внутренней функцией в шпионе и проверить значение, которое она возвратила, используя spy.returnValues:

lib.js

export const libFunc = () => 'the value';

code.js

import { libFunc } from './lib';

export const func = () => {
  // ...do stuff...
  const value = libFunc();
  // ...do more stuff...
}

code.test.js

import * as sinon from 'sinon';

import * as lib from './lib';
import { func } from './code';

test('func', () => {
  const spy = sinon.spy(lib, 'libFunc');  // spy on libFunc
  func();  // call func which calls libFunc
  expect(spy.returnValues[0]).toBe('the value');  // SUCCESS
});
...