WebUI实践之使用AngularJS 进行独立开发(模拟后台)

条件与目标:

  1. 前端使用AngularJS,接口服务均使用$http访问。
  2. 与后台协商好接口,完全独立并行开发,不用等待后台开发完接口才能进行页面测试。
  3. 需要gulp打包系统参与,即打包之前可以模拟后台接口测试,而打包之后则为Release版本,需要真实后台服务参与。
  4. 虽不能包括所有情况,但大部分基于数据的场景都可实用。

实践方法:

  1. 在index.html中创建gulp打包区块,以<!--build:js js/app.min.js-->开始,以<!--/build-->结束。
  2. 在index.html中引用angular-mocks.js(模拟http数据返回插件)。
  3. 创建testapi/mockinit.js(用于初始化数据模拟框架),代码如下:

    angular.module(‘mocktest‘,[‘ngMockE2E‘]).run(function($httpBackend){
        var http=$httpBackend;
        //pass    
    
        http.whenGET(/ *.html/).passThrough();
        http.whenGET(/ *.js/).passThrough();
        http.whenGET(/ *.css/).passThrough();
        http.whenGET(/ *.jpg/).passThrough();
    
        //testlogin
        http.whenPOST(APPURL+‘/service/user/login‘).respond(function(m,url,data){
    
            var param = angular.fromJson(data);
    
            var ret = {"result":-1,"message":"测试密码错误"};
            }
            return [200,ret];
        });
    
    });

  4. 根据功能创建其它测试模块,如testapi/moudlexxxmock.js:

    angular.module(‘mocktest‘).run(function($httpBackend){
    
        var http=$httpBackend;
    
        //test
        http.whenPOST(new RegExp(APPURL+‘/service/user/add‘)).respond(function(m,url,data){
    
            var ret = {"result":0,"message":""};
            return [200,ret];
        });
    });

  5. 在index.html 打包区块中,引用所有的testapi目录下的js文件:

        <script src="testapi/mockinit.js"></script>
        <script src="testapi/moduleusermock.js"></script>
        <script src="testapi/modulexxxmock.js"></script>

  6. 将此工程放入web容器中,运行未打包的程序,测试所有页面与返回数据的处理逻辑,此时已不需要后台web服务参与。
  7. 创建一个空的Mockjs,如gulpmock.js,代码如下:

    angular.module(‘mocktest‘,[]);
  8. gulpfile中,在打包js时,不打包testapi中的js,而打包gulpmock.js,生成的app.min.js中已没有模拟的后台接口,直接使用后台服务接口。

结论:

  虽然不知此方法是否为违背mock的初衷,但确实在独立开发与独立测试中取得较好的效果,非AngularJS工程可参考 Mockjax

时间: 2024-08-13 13:45:45

WebUI实践之使用AngularJS 进行独立开发(模拟后台)的相关文章

Angularjs中文版本开发指南发布

Angularjs中文版本开发指南发布 2014-02-16 15:49 by 破狼, 29069 阅读, 9 评论, 收藏,  编辑 从本人开始在写关于Angularjs的文章开始,也算是见证了Angularjs在国内慢慢的火起来,如今的Angularjs正式如日中天.想知道为什么Angularjs会这么火,请移步angularjs移除不必要的$watch. 也是一次偶然的机会,在Angular.js中文社区群里相遇一群Angular的爱好者,在一次巧妙的交谈,大家对于Angular官方的Gu

jFinal+AngularJs未来javaEE开发的趋势——程序员的福音

最近有意无意.机缘巧合之下认识了两个新的WEB框架,其中一个是后端框架叫JFinal,看名字就让人觉得为之一振,最后的.最终的,没错它的意思就是"我是JavaEE的终极框架",没有比这更好的啦!当然,这不是一个毫无依据的吹牛,接下来就来认识一下JFinal框架吧: JFinal概述JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所有优势的同时再拥有ruby.python

OWIN的理解和实践(二) – Host和Server的开发

原文:OWIN的理解和实践(二) – Host和Server的开发 对于开发人员来说,代码就是最好的文档,如上一篇博文所说,下面我们就会基于Kanata项目的一些具体调用代码,来进一步深入理解OWIN的实现和作用. 今天我们先针对Host和Server来实现一个简单的应用. 我们的开发环境是:  VS2013 Update 3,  .Net Framework 4.5.1 Host开发 如上篇博文提及,Host具有如下特点: 实现一个宿主进程 负责Server的启动和关闭 负责Middlewar

linux-mint下搭建android,angularjs,rails,html5开发环境

目录[-] 必备软件: 环境配置: [open-jdk-6.0] [android-sdk] [ant] [github] [node.js] [rvm](ruby-1.9.3 rails-4.0.0 gemfile) 必备概念: 关于自动化部署我推荐大家参谋一下Fortune Zhang的一篇文章:android开发过程中我是怎么一步步让项目自动化起来的 最新更新链接:https://gist.github.com/Channely/8296901 系统以64bit为例进行配置/2013/11

Unreal SDK 游戏开发从入门到精通(UnrealScript语法、UI Scene界面、UDK独立开发游戏)

对这个课程有兴趣的朋友可以加我的QQ2059055336和我联系 课程内容简介 本系列讲座主要讲述如何利用UDK开发游戏程序. 本课程主要分为四个部分: 1.学习UnrealScript的基本语法, 为下面的学习打下良好的基础 2.系统学习UDK的主要模块, 熟悉并掌握游戏开发的各个系统 3.使用UDK独立开发游戏Demo, 体验和理解UDK对游戏开发流程的整合 课程大纲 第一章初步接触Unreal SDK 1.1 Unreal sdk简介aaa 1.2 UC语言的基本介绍 1.3 搭建UDK的

独立开发日志转移说明

为了加强与其他独立游戏开发者的沟通和交流,以后独立开发日志将发在专注独立游戏的indienova,其他通用性的技术文章将继续发在博客园,让不同内容的文章各归其位. 独立开发日志新地址:http://indienova.com/u/guigui/blog

AngularJS最理想开发工具WebStorm(LINK)

AngularJS最理想开发工具WebStorm: http://blog.fens.me/angularjs-webstorm-ide/ AngularJS最理想开发工具WebStorm(LINK),布布扣,bubuko.com

搭建 AngularJS+Ionic+Cordova 开发环境并运行一个demo

目前的手机APP有三类:原生APP,WebAPP,HybridApp:HybridApp结合了前两类APP各自的优点,越来越流行. Cordova就是一个中间件,让我们把WebAPP打包成HybridAPP,并且它提供了非常多的插件,方便我们使用原生APP的功能. Ionic是一个界面样式库,仿照原生的ios和android界面:同时它是基于AngularJs的. 本文我们在win7中搭建 AngularJS+Ionic+Cordova 开发环境,包括所涉及的Node.js.Cordova CL

写给独立开发兄弟共勉-寂寞是19首诗和2首悲歌

昨晚又失眠了,这个过程却是太恼火.但上了贼船怎么能说退就退,太不爷们,哈哈哈.希望和我一样境遇的兄弟能共勉. 我不怕寂寞,怕年华虚度,空有一身疲倦. 但我怕寂寞,怕远方除了遥远一无所有. 我想为寂寞写19首诗. .... 第一首诗,我写给自己,因为是我默认了寂寞. 第二首诗,我写给昼夜,因为时间延长了寂寞. 第三首诗,我写给我的卧室,因为这里允许了寂寞的发生. 第四首诗,我写给我的猫,因为它在不停提醒我. 第五首诗,我写给周末,因为周末其他人都在恋爱. 第六首诗,我写给电影院,因为选号只允许连座