Миграция на v2.0
Sinon v2.0 — это второе крупное обновление, в котором мы внесли несколько критических изменений, модернизировав внутреннюю часть Sinon. Это руководство поможет вам разобраться в этих изменениях.
Убраны sinon.log и sinon.logError
sinon.log и sinon.logError в Sinon v1.x использовались для глобальной настройки FakeServer, FakeXMLHttpRequest и FakeXDomainRequest; теперь эти три функции позволяют настраивать логирование на основе каждого использования. В версии v1.x вы могли написать:
sinon.log = function (msg) { // your logging impl };
Теперь вы должны импортировать и настраивать утилиту при создании:
var sinon = require("sinon");
var myFakeServer = sinon.fakeServer.create({
logger: function (msg) { // your logging impl }
});
Убраны sinon.test, sinon.testCase и sinon.config
sinon.test и sinon.testCase были выделены из API Sinon и перемещены в собственный модуль npm, sinon-test. Обратитесь к файлу README модуля sinon-test для примеров миграции.
stub.callsFake заменяет stub(obj, ‘meth’, fn)
sinon.stub(obj, 'meth', fn) возвращает шпион, а не полноценный дублер. Поведение не могло быть переопределено. stub.callsFake теперь возвращает полноценный дублер. Вот скрипт codemod, который поможет вам с миграцией. См. обсуждение.
// Old sinon.stub(obj, 'meth', fn); // New sinon.stub(obj, 'meth').callsFake(fn);
Устаревшие внутренние вспомогательные функции
Следующие вспомогательные функции устарели и планируется их удаление в Sinon v3.0; пожалуйста, проверьте ваш код на использование для облегчения будущих миграций:
sinon.calledInOrdersinon.createsinon.deepEqualsinon.formatsinon.functionNamesinon.functionToStringsinon.getConfigsinon.getPropertyDescriptorsinon.objectKeyssinon.orderByFirstCallsinon.restoresinon.timesInWorldssinon.valueToStringsinon.walksinon.wrapMethodsinon.Eventsinon.CustomEventsinon.EventTargetsinon.ProgressEventsinon.typeOfsinon.extend
sandbox.useFakeXMLHttpRequest больше не возвращает «сервер»
В Sinon 1.x, useFakeXMLHttpRequest в области sandbox был таким же, как useFakeServer. В 2.x он напрямую сопоставляется с sinon.useFakeXMLHttpRequest (но с использованием sandboxing). Если вы используете sandbox.useFakeXMLHttpRequest, просто замените его на sandbox.useFakeServer, и ваши тесты должны вести себя так же, как и раньше.
sinon.behavior больше не доступен
Объект sinon.behavior больше не доступен для произвольного изменения. Однако есть новый механизм, позволяющий добавлять новое поведение в дублеры, sinon.addBehavior(name, fn), см. документацию по дублерам.
© 2010–2017 Christian Johansen
Licensed under the BSD License.
http://sinonjs.org/releases/v3.3.0/migrating-to-2.0