Согласно документам :
_С [email protected]_
Вы можете сбросить историю всех заглушек с помощью sinon.resetHistory ()
Воспроизводить
const assert = require('chai').assert;
const sinon = require('sinon');
describe('resetHistory', function() {
var num = null;
beforeEach(function() {
num = sinon.createStubInstance(Number);
});
afterEach(() => {
// Restore the default sandbox here
sinon.restore();
});
describe('called on individual stub method', function() {
it('should clear "called" status on stub', function() {
num.toFixed();
assert.isTrue(num.toFixed.called);
num.toFixed.resetHistory();
assert.isFalse(num.toFixed.called);
});
});
describe('called on module', function() {
it('should clear "called" status on all stubs', function() {
num.toFixed();
assert.isTrue(num.toFixed.called);
sinon.resetHistory();
assert.isFalse(num.toFixed.called);
});
});
});
Фактические результаты
Второй тест не пройден:
"" вызванный модуль: должен очистить статус \ "вызываемого \" на всех заглушках: ❌. [assert.isFalse] Ожидается, что истина будет ложью ""
Ожидаемые результаты
Все тесты пройдены
Я обновил проблему с содержимым zip-файла, а также добавил его как работающую демонстрацию RunKit , утверждая, что она работает.
Я хотел бы помочь с исправлением ошибок
@rpgeeganage Пожалуйста, сделайте это! Вот наше руководство по началу работы
Я понимаю, что этот комментарий больше похож на запрос функции, но было бы неплохо, если бы объект "заглушка" имел свои собственные методы resetHistory()
(и resetBehavior()
и reset()
), без необходимости использовать всю песочницу.
@mcow А ты пробовал? 😄 Заглушки имеют эти функции со 2-й версии Sinon . Дополнения в песочнице появились намного позже.
@ fatso83 ,
Большое спасибо. Я буду работать над этим.
Эта функция есть в методах- заглушках @ fatso83 . Объекты "заглушки" , являющиеся результатом вызова createStubInstance()
(паршивая терминология sinon, не обвиняйте меня в недопонимании), не работают.
@ fatso83 ,
Я изучил реализацию sinon.resetHistory
и sinon.createStubInstance
.
Я заметил, что sinon.createStubInstance
не использует реализацию из sandbox
а sinon.resetHistory
использует реализацию из sandbox
. В sinon.resetHistory
collection
всегда пусто. Я буду копать глубоко.
@mcow Ага, это все объясняет. Я не заметил бит _instance_ :) Надеюсь, что @rpgeeganage deep dive
@ fatso83 , следует ли закрыть этот вопрос, поскольку изменения для него объединены в мастер?
ТГ для проницательных наблюдателей 😄