zoukankan      html  css  js  c++  java
  • mock.js

    mock.js

    http://mockjs.com/
    https://github.com/nuysoft/Mock/wiki

    为了完成angularjs的karma测试,看到这个好东东,这货能拦截ajax然后返回模拟数据,在后端接口没完成的情况写,这不是很赞么?

    转自: http://www.angularjs.cn/A0I4

    概述

    首先啦,我不认识mock.js的作者,带着需求找到mock.js让我觉得很惊艳。
    相对于其他同类的框架的实现,mock.js超出了我的意料。

    1. 基于 数据模板 生成模拟数据。
    2. 基于 HTML模板 生成模拟数据。
    3. 拦截并模拟 ajax 请求。

    是的,mock.js只做上述的几件事,但做的足够出色。

    解决的问题

    开发时,后端还没完成数据输出,前端只好写静态模拟数据。

    数据太长了,将数据写在js文件里,完成后挨个改url。
    某些逻辑复杂的代码,加入或去除模拟数据时得小心翼翼。
    想要尽可能还原真实的数据,要么编写更多代码,要么手动修改模拟数据。
    特殊的格式,例如IP,随机数,图片,地址,需要去收集。
    超烂的破网速..
    ...
    以上都不再是问题

    接下来体验 拦截ajax请求并返回模拟数据。

    步骤1 - 安装

    安装太简单,跳过

    步骤2 - 配置模拟数据

    Mock.mock('http://g.cn', {
        'name'       : '@name()',
        'age|1-100': 100,
        'color'       : '@color'
    });
    

    步骤3 - 发送ajax请求(jquery版)

    $.ajax({
        url: 'http://g.cn',
    }).done(function(data, status, xhr){
        console.log(
            JSON.stringify(data, null, 4)
        )    
    })
    

    步骤4 - 查看响应的结果

    // 结果1
    {
        "name": "Elizabeth Hall",
        "age": 91,
        "color": "#0e64ea"
    }
    
    // 结果2
    {
        "name": "Michael Taylor",
        "age": 61,
        "color": "#081086"
    }
    
    // 结果N ..
    

    结尾

    演示: mock-demo
    演示: mock-angular-demo
  • 相关阅读:
    UVa 482
    UVa 10360
    UVa 10812
    UVa 10420
    UVa 573
    UVa 357
    UVa 147
    UVa 674
    郑厂长系列故事——逃离迷宫 HDU4524
    威威猫系列故事——过生日 HDU 4523
  • 原文地址:https://www.cnblogs.com/wancy86/p/mock.html
Copyright © 2011-2022 走看看