7

是否有一个工具可以轻松地模拟 restful 服务,以便我们可以Ajax轻松地测试我们的调用?

例如,我需要模拟一个 restful 服务以返回stringJSON格式化XML

4

4 回答 4

2

你可以试试 jasmine-Ajax。https://github.com/pivotal/jasmine-ajax

当然,这意味着您需要使用 Jasmine 进行测试。https://github.com/jasmine/jasmine/

Sinon 也是一个非常强大的模拟库。http://sinonjs.org/你可以选择你的测试框架。我用它和摩卡咖啡。http://visionmedia.github.com/mocha/

于 2012-12-26T06:08:56.983 回答
2

试试jmockit;我曾用它来模拟 Web 服务。但这是一个 Java 解决方案。如果您想在服务器端模拟 REST API,那么这将适合。如果您没有 REST 应用程序,这将无济于事。

如果您想在客户端(在 JS 中)本身进行模拟;

您可以编写自己的模拟框架/接口。因此,当您发送请求时,请在中间放置一个层,它可以只返回您的测试响应,而不是实际调用 REST URL。

客户端--->模拟接口---> REST API CALL

function mockingInterface(var url){
    //if original
    //make REST call

    //else; return mocked data
}
于 2012-12-26T06:14:57.340 回答
2

FakeRest完全符合您的要求。

// initialize fake REST server and data
var restServer = new FakeRest.Server();
restServer.init({
    'authors': [
        { id: 0, first_name: 'Leo', last_name: 'Tolstoi' },
        { id: 1, first_name: 'Jane', last_name: 'Austen' }
    ],
    'books': [
        { id: 0, author_id: 0, title: 'Anna Karenina' },
        { id: 1, author_id: 0, title: 'War and Peace' },
        { id: 2, author_id: 1, title: 'Pride and Prejudice' },
        { id: 3, author_id: 1, title: 'Sense and Sensibility' }
    ]
});
// use sinon.js to monkey-patch XmlHttpRequest
var server = sinon.fakeServer.create();
server.respondWith(restServer.getHandler());

// Now query the fake REST server
var req = new XMLHttpRequest();
req.open("GET", "/authors", false);
req.send(null);
console.log(req.responseText);
// [
//    {"id":0,"first_name":"Leo","last_name":"Tolstoi"},
//    {"id":1,"first_name":"Jane","last_name":"Austen"}
// ]
于 2015-05-11T09:27:06.473 回答
0

你也可以试试http://apiary.io/

在那里,您可以以文本格式定义请求响应,例如在 JSON 中。优点是 MOCK API 是公开的,因此团队的任何部分都可以使用它。

于 2013-09-26T12:14:55.537 回答