API测试:Chai & Mocha

(一)Chai$npm install chaihttps://www.chaijs.com/   安装到devDependencies中,线上不用,开发用

Chai is a BDD(行为驱动开发)/TDD(测试驱动开发)assertion library for node & browser.

const { add } = require( '../src/math' );//自己写的加法函数
const{ should, expect, assert } = require( 'chai' );
  • BDD
①should();
add(2,3).should.equal(5);
②expect(add(2,3)).to.be(5);
  • TDD
assert.equal(add(2,3),5);//原生node也有,但这个方法更多

 

(二)Mocha$npm install mochahttps://mochajs.org/  

Mocha is a feature-rich JS test framework running on Node.js &in the browser.

注入:package.json中加入一条"script":{"test":"mocha"}之后,直接npm test即可以启动测试

const { add,mul } = require( '../src/math' );//自己写的加法乘法函数
const assert = require( 'assert' );//自己本身不包含任何断言库,或者可以require( 'chai' )

describe('#math',()=>{
    describe('add',()=>{
        it('should return 5 when 2+3',()=>{
            expect(add(2,3),5);
        });//2+3应该等于5
        it('should return 5 when 2+3',()=>{
            expect(add(2,-3),-1);
        });
    });
    describe('mul',()=>{
        it('should return 6 when 2*3',()=>{
            expect(mul(2,3),6);
        });//2*3应该等于6
    });
});
//it.only(只执行一个),it.skip(跳过这个不执行)        

转载于:https://www.cnblogs.com/M-M-Monica/p/10462067.html

单元测试(Unit Tests)和集成测试(Integration Tests)是软件开发中的两种关键测试策略: **单元测试 (unit tests):** - 单元测试是在最小可测试单元(通常是函数或方法)级别上进行的测试。在`unitTests`目录下,你可能会创建一个针对每个核心功能或模块的单独测试文件,比如`mathUtils.test.js`或`databaseHandler.test.js`。 - 使用工具如MochaJavaScript)或JUnit(Java),配合断言库如Chai、Jest或JUnit assertions,对代码的各个部分进行细致的验证,确保它们按预期工作,独立于其他组件。 - 示例代码片段(假设使用MochaChai): ```javascript const assert = require('chai').assert; describe('MathUtils.add', function() { it('should add two numbers correctly', function() { const result = MathUtils.add(2, 3); assert.equal(result, 5); }); }); ``` **集成测试 (integration tests):** - 集成测试则关注组件之间的交互,验证整个系统是如何协同工作的。这可能涉及到多个模块和服务的组合,例如API端点与数据库的交互。 - 在`integrationTests`目录下的文件通常会模拟或设置外部依赖,然后测试如何从用户接口角度触发这些内部交互。 - 例如,在Express应用中,可能测试`usersController`和`databaseAdapter`如何一起处理用户注册请求: ```javascript const request = require('supertest'); describe('User registration API', function() { it('should create a new user and save to the database', async () => { const res = await request(app) .post('/api/users') .send({ username: 'test', password: 'password' }); assert.equal(res.status, 201); const savedUser = await UserService.getUserById(res.body.id); assert.isNotNull(savedUser); }); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值