React-native的单元测试框架-Jest

首先一个简单例子,自己先试了一下~

安装

使用命令npm install jest-cli --save-dev来安装Jest命令行:

localhost:TesterHome wuxian$ npm install jest-cli --save-dev
jest-cli@0.7.1 node_modules/jest-cli
├── jasmine-pit@2.0.2
├── object-assign@4.0.1
├── graceful-fs@4.1.2
├── through@2.3.8
├── resolve@1.1.6
├── diff@2.2.0
├── optimist@0.6.1 (wordwrap@0.0.3, minimist@0.0.10)
├── json-stable-stringify@1.0.0 (jsonify@0.0.0)
├── mkdirp@0.5.1 (minimist@0.0.8)
├── which@1.2.0 (is-absolute@0.1.7)
├── worker-farm@1.3.1 (xtend@4.0.1, errno@0.1.4)
├── node-haste@1.2.8 (esprima-fb@4001.1001.0-dev-harmony-fb)
├── lodash.template@3.6.2 (lodash._basetostring@3.0.1, lodash._reinterpolate@3.0.0, lodash._basecopy@3.0.1, lodash._basevalues@3.0.0, lodash.restparam@3.6.1, lodash.templatesettings@3.1.0, lodash.escape@3.0.0, lodash._isiterateecall@3.0.9, lodash.keys@3.1.2)
├── sane@1.3.0 (watch@0.10.0, minimist@1.2.0, exec-sh@0.2.0, walker@1.0.7, minimatch@0.2.14, fb-watchman@1.6.0)
├── cover@0.2.9 (which@1.0.9, underscore@1.2.4, underscore.string@2.0.0, cli-table@0.0.2)
├── istanbul@0.3.22 (abbrev@1.0.7, wordwrap@1.0.0, nopt@3.0.4, async@1.5.0, once@1.3.2, esprima@2.5.0, escodegen@1.7.0, supports-color@3.1.2, fileset@0.2.1, js-yaml@3.4.3, handlebars@4.0.4)
└── jsdom@7.0.2 (acorn-globals@1.0.9, webidl-conversions@2.0.0, xml-name-validator@2.0.1,

单元测试文件夹

Jest默认执行__tests__(左右各两个下划线)文件下的单测case,所以在你的根目录下创建该目录:

这里写图片描述


编写case

目标文件为sum.js:

// sum.js
function sum(value1, value2) {
  return value1 + value2;
}
module.exports = sum;

__tests__目录下编写单元测试类sum-test.js:

// __tests__/sum-test.js
jest.dontMock('../sum');

describe('sum', function() {
 it('adds 1 + 2 to equal 3', function() {
   var sum = require('../sum');
   expect(sum(1, 2)).toBe(3);
 });
});

执行单测

命令为npm test:

localhost:TesterHome wuxian$ npm test

> TesterHome@0.0.1 test /Users/wuxian/Documents/sourcecode/self/react-native/TesterHome
> jest

Using Jest CLI v0.7.1
 PASS  __tests__/sum-test.js (0.018s)
1 test passed (1 total in 1 test suite, run time 0.555s)



接下来进行接口测试:

import 'react-native';
import React from 'react';
import Index from '../app/service/userService.js';

// // Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';

describe('signIn',function() {
  it('登录的测试',function(){
    var Request = require('request');
    var myInit = {
                  method:'POST',
                  headers:{
                          'Accept':'application/json',
                          'Content-Type':'application/json',
                  },
                  body:JSON.stringify({
                      mobile: 157××××2323,
                      codE: 1234,
                      password: 11242343
                  }) };

    var myRequest = new Request('http://192.168.1.110:3000/user/generate', myInit);
 
  });
});

终端npm test

测试结果会将body数据发送至服务器,Request详细自行查阅Jest、Fetch文档吧~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值