是否有一个工具可以轻松地模拟 restful 服务,以便我们可以Ajax
轻松地测试我们的调用?
例如,我需要模拟一个 restful 服务以返回string
或JSON
格式化XML
。
是否有一个工具可以轻松地模拟 restful 服务,以便我们可以Ajax
轻松地测试我们的调用?
例如,我需要模拟一个 restful 服务以返回string
或JSON
格式化XML
。
你可以试试 jasmine-Ajax。https://github.com/pivotal/jasmine-ajax
当然,这意味着您需要使用 Jasmine 进行测试。https://github.com/jasmine/jasmine/
Sinon 也是一个非常强大的模拟库。http://sinonjs.org/你可以选择你的测试框架。我用它和摩卡咖啡。http://visionmedia.github.com/mocha/
试试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
}
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"}
// ]
你也可以试试http://apiary.io/。
在那里,您可以以文本格式定义请求响应,例如在 JSON 中。优点是 MOCK API 是公开的,因此团队的任何部分都可以使用它。