Как написать правильные тесты для Y.io

В настоящее время я пытаюсь написать приложение с использованием YUI3 и методологии TDD. Я столкнулся с проблемой, когда не могу понять, как правильно писать тесты для проверки кода, использующего YUI3 Y.io.

Согласно YUITest документам, они говорят о фиктивных объектах и ​​XMLRequestObject. что, по сути, Я пытаюсь издеваться. Но я не могу понять, как это сделать, когда я использую Y.io вместо XMLRequestObject.

Кто-нибудь сталкивался с этим раньше?


person St. John Johnson    schedule 10.08.2013    source источник
comment
Можете ли вы дать более подробную информацию о типе тестов, которые вы хотите запустить? В зависимости от типа Y.io тестов, которые вы хотите запустить, может быть лучше использовать echoecho для их запуска. . Мы также используем это в наших собственных Y.io тестах в YUI.   -  person Clarence Leung    schedule 11.08.2013


Ответы (1)


Вы можете указать Y.IO использовать пользовательский транспорт, отличный от используемого по умолчанию XMLRequestObject. Могут быть и другие способы добавить пользовательские транспорты в Y.IO, но этот сработал для меня:

Создайте функцию, которая исправит пользовательский транспортный режим, mock, до Y.IO:

function _createMockTransport(mockXHR) {
    Y.IO.transports.mock = function () {
        return mockXHR;
    }
}

Затем в вашей функции настройки добавьте вариант следующего:

// I change the Y.IO instantiation configuration when instantiating my application
this.application = new Application({ yIOConfig: { xdr: { use: 'mock' }}})

this.xhr = Y.Mock();
Y.Mock.expect(this.xhr, {
    method: 'send',
    args: [Y.Mock.Value.Object, '/foo', Y.Mock.Value.Object]
});

_createMockTransport(this.xhr);

Пример теста будет выглядеть так:

"test /foo": function () {
    this.appliation.doServerCall();
    Y.Mock.verify(this.xhr);
},
person Jonas G. Drange    schedule 12.08.2013