我目前正在尝试使用 YUI3 并通过 TDD 方法编写应用程序。我遇到了一个问题,我无法弄清楚如何正确编写测试来测试利用YUI3的代码Y.io
。
根据YUITest
文档,他们谈论模拟对象,而XMLRequestObject.
这本质上就是我试图模拟出来的。但是当我使用Y.io
而不是XMLRequestObject
.
有没有人遇到过这个?
我目前正在尝试使用 YUI3 并通过 TDD 方法编写应用程序。我遇到了一个问题,我无法弄清楚如何正确编写测试来测试利用YUI3的代码Y.io
。
根据YUITest
文档,他们谈论模拟对象,而XMLRequestObject.
这本质上就是我试图模拟出来的。但是当我使用Y.io
而不是XMLRequestObject
.
有没有人遇到过这个?
您可以告诉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);
},