Использование библиотеки sinon js для имитации существующей функции, используемой тестовым кодом - PullRequest
0 голосов
/ 19 октября 2018

Я новичок в современном программировании и тестировании js, поэтому могу использовать неправильные термины.Я использую React и синтаксис ES6 и использую jest и sinon для своих тестов.

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

Я добавлю сюда код для проверки

import get_products from './products';

function fetchProducts() {

some_code()

get_products()

some_more_code()

}

И в моем тесте

import 'fetchProducts' from '../main';

test('fetchProducts', () => {

fetchProducts();

})

То, что я пытаюсь сделать, это смоделировать функцию get_products (), чтобы она на самом деле не вызывалась, а возвращала предопределенный результат при тестировании функции fetchProducts ().Я несколько дней смотрел на помощь sinon, но не могу понять.

Спасибо всем!

1 Ответ

0 голосов
/ 19 октября 2018

Я не проверял это, но должен работать как ожидалось.

before(function() {
    sinon.stub(get_products).yields(null, JSON.stringify({ hello: 'World!' }));
});

it('get_products should be called', function() {
    fetchProducts();
    get_products.called.should.be.equal(true);
});

Дайте мне знать, если это работает.

...