【问题标题】:tool to easily mock restful service [closed]轻松模拟宁静服务的工具[关闭]
【发布时间】:2012-12-26 05:21:01
【问题描述】:

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

例如,我需要模拟一个restful服务以JSONXML格式返回string

【问题讨论】:

标签: javascript ajax rest testing


【解决方案1】:

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

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

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

【讨论】:

    【解决方案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
    }
    

    【讨论】:

    • 如果我没有 REST 应用程序怎么办?第二种方法是唯一的解决方案吗?
    • 是的,那么最好在 JS 的客户端做。
    • 谢谢。为什么我不能@你,rai.skumar?
    【解决方案3】:

    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"}
    // ]
    

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-06
        • 2021-01-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多