1

我目前正在尝试使用 YUI3 并通过 TDD 方法编写应用程序。我遇到了一个问题,我无法弄清楚如何正确编写测试来测试利用YUI3的代码Y.io

根据YUITest文档,他们谈论模拟对象,而XMLRequestObject. 这本质上就是我试图模拟出来的。但是当我使用Y.io而不是XMLRequestObject.

有没有人遇到过这个?

4

1 回答 1

2

您可以告诉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);
},
于 2013-08-12T11:54:48.143 回答