0

我在物联网框架中使用秘银。我试图将前端开发与后端 API 实现任务隔离开来。在 jQuery 中,我使用了 jQuery-mockjax 和 Angular 中的类似机制。我的理解是,这些库拦截 ajax 函数调用并适当地响应使用 $.mockjax (或类似函数)设置的数据

此处推荐的机制https://groups.google.com/forum/#!topic/mithriljs/FzpCPMfauf0没有提供实现此功能的灵活性。对于选定的少数 API,没有简单的方法可以使用 mock。

查看代码后,我意识到,要实现这一点,我需要访问“ajax”函数(或只是 XHR 处理部分),以便可以使用我自己的可以模拟所选 API 的实现来覆盖它。问题是 ajax 是库中的本地函数。如果它作为 m.ajax 公开,我的库可以覆盖它并获得我需要的功能。

我的问题是,有没有更好的方法来实现同样的目标?如果你做过类似的事情,请分享。

我的代码结构将是这样的:

// in mithril-mockjax.js, implements mockjax function

m.mockjax = function (options) { … }

// in app-api-mocks.js

m.mockjax({
   method: GET,
   url: /sessions/123,
   response: { …}
});

m.mockjax({
   method: POST,
   url: /sessions,
   data: {},
   response: { … }
});

上面两个文件是我在开发模式时在页面中插入的。其余代码保持不变。

4

1 回答 1

0

你可以m.request通过猴子补丁来模拟,或者在m.request你的代码之间添加一个抽象层,然后你可以模拟掉。

于 2015-11-02T10:41:48.970 回答