是否有工具可以轻松模拟restful服务,以便我们可以轻松测试Ajax
次来电?
例如,我需要模拟一个restful服务,以string
或JSON
格式返回XML
。
答案 0 :(得分:2)
你可能会给jasmine-Ajax一个机会。 https://github.com/pivotal/jasmine-ajax
当然这意味着您需要使用Jasmine进行测试。 https://github.com/jasmine/jasmine/
Sinon也是一个非常强大的模拟库。 http://sinonjs.org/您可以选择您的测试框架。我和Mocha一起使用过它。 http://visionmedia.github.com/mocha/
答案 1 :(得分: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
}
答案 2 :(得分: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"}
// ]
答案 3 :(得分:0)
您也可以尝试http://apiary.io/。
您可以在文本格式中定义请求响应,例如在JSON中。优点是MOCK API是公共的,因此团队的任何部分都可以使用它。