var rest = require('restler');
var assert = require("assert");
var systemID;
var userID;

console.log('--------------------------------------');
console.log('SYSTEM TEST START ..');
console.log('--------------------------------------');

describe('system',function(){
  it('增加',function(done){
    rest
      .post('http://127.0.0.1:1337/system/',{data:{system:'test',uri:'http://test.com'}})
      .on('complete', function(result) {
        "use strict";
        assert.equal('test',result.result.system);
        assert.equal('http://test.com',result.result.uri);
        systemID = result.result.id;
        done();
      });
  });
  it('修改',function(done){
    rest
      .put('http://127.0.0.1:1337/system/'+systemID,{data:{system:'test',uri:'http://test2.com'}})
      .on('complete', function(result) {
        "use strict";
        //console.log(result);
        assert.equal('test',result.result.system);
        assert.equal('http://test2.com',result.result.uri);
        done();
      });
  });
  it('查看',function(done){
    rest
      .get('http://127.0.0.1:1337/system/')
      .on('complete', function(result) {
        "use strict";
        assert.equal('test',result.result[result.result.length - 1].system);
        assert.equal('http://test2.com',result.result[result.result.length - 1].uri);
        done();
      });
  });
  it('删除',function(done){
    rest
      .del('http://127.0.0.1:1337/system/'+systemID)
      .on('complete', function(result) {
        "use strict";
        assert.equal('test',result.result.system);
        assert.equal('http://test2.com',result.result.uri);
        done();
      });
  });
});

describe('user',function(){
  it('增加',function(done){
    rest
      .post('http://127.0.0.1:1337/user/',{data:{email:'test@test.com',passwd:'test'}})
      .on('complete', function(result) {
        "use strict";
        assert.equal('test@test.com',result.result.email);
        userID = result.result.id;
        done();
      });
  });
  it('修改',function(done){
    rest
      .put('http://127.0.0.1:1337/user/'+userID,{data:{email:'test2@test.com'}})
      .on('complete', function(result) {
        "use strict";
        //console.log(result);
        assert.equal('test2@test.com',result.result.email);
        done();
      });
  });
  it('查看',function(done){
    rest
      .get('http://127.0.0.1:1337/user/')
      .on('complete', function(result) {
        "use strict";
        assert.equal('test2@test.com',result.result[result.result.length - 1].email);
        done();
      });
  });
  it('删除',function(done){
    rest
      .del('http://127.0.0.1:1337/user/'+userID)
      .on('complete', function(result) {
        "use strict";
        assert.equal('test2@test.com',result.result.email);
        done();
      });
  });
});

与你相遇好幸运,mocha接口测试的更多相关文章

  1. nodejs+supertest+mocha 接口测试环境搭建

    系统接口自动化测试 该框架用于对系统的接口自动化测试(nodejs+supertest+mocha)Homebrew 安装: ruby -e "$(curl -fsSL {+}https:/ ...

  2. 与你相遇好幸运,服务器node环境安装

    >服务器更改root密码 sudo passwd root >服务器ubuntu安装ssh apt-get install openssh-server >服务器开启root用户密码 ...

  3. 与你相遇好幸运,My Toolkit of Nodejs

    >测试:restler.mocha.assert.request.request-promise >安装:nrm >运维:pm2.node-gyp >开发:nodemon.in ...

  4. 与你相遇好幸运,使用redis设置定时任务

    参考链接: Nodejs中使用Redis来完成定时任务 自己在 window 7下编码实现: 1 > 首先查看redis版本: redis-server -v , 版本要求大于等于2.8 2&g ...

  5. 与你相遇好幸运,制作自己的Yeoman Generator

    使用别人写好的生成器: npm install -g yonpm install -g generator-angularyo angular 如何自己制作符合自己心仪的生成器呢: https://g ...

  6. 与你相遇好幸运,gen8安装

    gen8到手后,立马去买了 SSD https://item.jd.com/2010277.html 支架 https://item.jd.com/2671609.html NAS盘 https:// ...

  7. 与你相遇好幸运,德淘gen8历程

    应该是十月底了 , 在浏览色魔张大妈(smzdm) http://www.smzdm.com/p/6517684/ 的时候看见了这个 , 以前大学就想买个这个 , 苦于没钱.... 然后当时打算买 , ...

  8. 与你相遇好幸运,用sinopia搭建npm私服

    需求: >在企业内部搭建私有npm服务器,企业开发人员上传下载自己开发的npm包 >私有npm服务器包不存在时,找npm或者taobao的镜像站点 >服务器硬盘有限,希望只缓存下载过 ...

  9. 与你相遇好幸运,Postman设置Header不生效问题解决

    POstMan安装地址 安装完 , Postman 设置Header的Referer不生效 , 提示 Restricted Header (use postman interceptor) 时 , 要 ...

随机推荐

  1. Delphi dll 断点调试

    1.dll 要有一个依托的exe(怎么做 相信用dll了一定知道) 2.选项中的compling中的debugging中的选项,linking中的所有选项 3.最后一个也就是最重要的 run中的par ...

  2. iOS多线程学习

    在 iOS 中其实目前有 4 套多线程方案,他们分别是: Pthreads NSThread GCD NSOperation & NSOperationQueue 所以接下来,我会一一讲解这些 ...

  3. ajax之 get post请求

    get请求 function get(){ $.get( "./Aservlet?id=5", function(data, textStatus, jqXHR){ $(" ...

  4. mysql5.7导入csv文件

    环境: Windows10企业版X64 mysql5.7免安装版(从5.6版本开始,官方不再提供64位的msi版本) 运行mysqld.exe启动mysql进程. 用root登录mysql: mysq ...

  5. 创建NetWorkDataset---FileGDB篇

    /// <summary> /// 创建NetWorkDataset /// </summary> /// <returns>INetworkDataset.< ...

  6. Java学习笔记12

    循环 打印一个字符串(例如: "Welcome to Java!") 100次,就需要吧下面的输出语句重复写100遍,这是相当繁琐的: System.out.println(&qu ...

  7. 在 Github 上找「好东西」的方法

    使用 Github 的站内搜索,搜索: Awesome + 你的关键字

  8. javascript数据结构与算法--基本排序算法分析

    javascript中的基本排序算法 对计算机中存储的数据执行的两种最常见操作是排序和检索,排序和检索算法对于前端开发尤其重要,对此我会对这两种算法做深入的研究,而不会和书上一样只是会贴代码而已,下面 ...

  9. STM32f103之外部中断

    一.背景 有个需求,IO口检测上升沿,然后做相应的动作.在此记录STM32F103的外部中断结构及配置方法, 以备下次快速上手使用. 有许多不太明白,又是老司机(:-D)帮忙,真的是站在别人的肩膀上会 ...

  10. PHP mysql与mysqli事务详解

    官方对PHP连接到MySQL数据库服务器的三种主要的API简介如下: http://php.net/manual/zh/mysqli.overview.php PHP mysql与mysqli事务详解 ...