首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Serverless 最佳实践之数据库连接和查询

/sql'; // FaasJS Sql 插件import knex from 'knex'; // 使用 TypeScript 来定义用户表结构interface User { id: number...Knex 返回数据类型和数据库类型 .from('users') // 告诉 Knex 表名 .connection(sql.adapter!....: Knex 支持使用 TypeScript interface 作为返回数据类型 sql 插件需要把连接池注入到 Knex 中以利用云函数生命周期来管理连接 按上面的写法,云函数本身业务代码是没问题了..., Knex 还支持建表之类操作,对于自动化测试是非常有用,所以我们再深入看一下自动化测试脚本怎么写更好: // __tests__/user.test.tsimport { FuncWarpper...from 'knex'; // 引入 knex 插件 // FaasJS 使用 Jest 作为测试框架describe('user', function () { let func: FuncWarpper

2.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端自动化测试实践03—jest异步处理&mock

    前端自动化测试实践03—jest异步处理&mock TOC Write By CS逍遥剑仙 我主页: www.csxiaoyao.com GitHub: github.com/csxiaoyaojianxian...- ajax 模拟 ajax 请求 接口正确性一般由后端自动化测试保证,前端自动化测试,一般需要 mock 触发 ajax 请求,例如测试 mock.js 中接口调用 export const getData.../mock'); 4. mock - function 模拟函数调用 对于单元测试,无需关心外部传入函数实现,使用 jest.fn 生成一个 mock 函数,可以捕获函数调用和返回结果,以及this...- function 模拟 class 函数 对于单元测试,外部 class 实现无需关心,使用 jest.fn 生成一个 mock 类,例如测试 mock.js export const createObject...例如测试 func.js,从外部引入了 Util 类,单元测试不关心 Util 实现 import Util from '.

    5.1K85

    手写一个简易版 Jest

    Jest 是流行前端单元测试框架,可以用它来写 Node 代码或者组件单测。 Jest 用起来并不难,很多人用了多年依然不知道它是怎么实现。...、Mock、覆盖率检测等功能,是怎么实现呢?...总之,jest require 并不完全是 node require,所以它能实现 mock 等功能也不奇怪。 理清了这些之后,我们就可以动手写了。...包括 require 也是 Jest 自己实现版本,所以可以实现 Mock 功能,当然,我们直接修改 require.cache 也可以实现类似功能。...我们实现了支持单测运行、支持钩子函数、支持 Mock 简易版 Jest。 还有一些功能没实现: 比如错误打印代码位置,这个用 @babel/code-frame + 解析错误堆栈行列号来实现

    13810

    测试中如何处理 Http 请求?

    我一直不太喜欢 Mock 类似 fetch 函数东西,因为最终你会在所有地方把整个后端逻辑都重新实现一遍。 这通常发生在多个测试之间,非常烦人。...这也导致了一旦遇到后端东西,我就要在所有地方都要重新实现一遍后端逻辑 我们把 window.fetch Mock 了(第二个例子)。... msw 还有一个优势:你可以将这些 “Server Handler” 用在前端本地开发上,适用于以下场景: API 还没实现完 API 崩了时候 网速太慢或者没联网 你可能听说过做类似事情 Mirage...对于自定义场景,msw 可以在运行时允许你在测试用例中添加自定义 Server Handler,也可以一键重置成你原来 Handler,以此保留隔离性。...总的来说,我还是挺喜欢拦截 Http 请求这种 Mock 方法。msw 不仅可以在测试中拦截请求,实现集成、E2E 测试,还可以在前端开发时来 Mock 数据,确实是一个有趣实践。

    1.2K10

    Jest单元测试之旅—实践总结

    Jest提供mock方法主要有:jest.fn、jest.mockjest.spyOn。...每个方法都有不同使用场景,每个API都会生成一个mock模拟函数,Jest对模拟函数提供了很多方法给予我们模拟方法返回、实现等等,可移至文档参考 jest.fn jest.fn主要是创建一个模拟函数... 数组 jest.resetAllMocks | .resetMock 重置mock,但是不会恢复实现,也就是说它还是一个被模拟方法 jest.restoreAllMocks | .restoreMock...恢复原本实现,只能用于jest.spyOn创建模拟,其他Mock需要手动恢复 其中jest.restoreAllMocks | .restoreMock 比较特别,只能用于jest.spyOn创建模拟...原因是如果依赖被测试功能实现逻辑意味着修改实现逻辑但是输入输出没有变化也需要去更新测试代码。

    10.3K20

    Vue 应用单元测试策略与实践 02 - 单元测试基础

    system 任何外部系统 其实在 Jest 当中,Fake/Stub/Mock/Spy 这些概念或许会有所混淆,而这跟 JavaScript 语言本身特点有一定关系,但是我觉得 Jest 通过统一...}; }); }); 我们可以看到 jest.mock() 方法中第二个参数是一个函数,那么我们就可以完全接管整个 ....这时需要注意是,该模板所有功能都已经被 Mock 掉,而不会再从原模块当中返回,所以我们就需要重新实现该模块中所有功能。...而像 matchMedia 这样方法在 jsdom 里面并没有被实现,这时候我们当然就需要去把它 Mock 掉,简单把要用到一些对象属性赋值就好,总之不至于在运行时报错。...这种方式侵入性比较强,对测试语句不友好且违背了 Given/When/Then 三段式套路,就像回调地狱一样道理,如果让 done() 充斥着测试那么代码也就变得混乱。

    2.2K20

    Jest基本使用方法以及mock技巧介绍

    2  Jestmock技巧介绍 2.1  基本mock 2.1.1  Mock一个函数 方法mock 非常简单,使用jest.fn 就可以非常简单mock一个函数。...2.1.3  Mock内部实现 使用jest.fn或者mockImplementationOnce 可以完全替换需要mock函数。 如下面的例子: ?...2.3.1  jest.mock自动mock类所在模块, 类和类方法也自动被mock。 ? 2.3.2  在_mock__路径建立mock文件: ?...,针对不同情况 (例如返回值或者替换实现),可以考虑使用mockReturnValue和mockImplementation;针对类和模块mock,推荐使用自动mock方法也就是jest.mock...对于比较复杂类和接口,如果自动mock不能完成覆盖到的话,建议结合使用jest.mockjest.fn().mockImplementation,或者可以使用jest.mock完全自己mock

    8.4K50

    那些年错过React组件单元测试(上)

    Mock 介绍jestmock之前,我们先来思考一个问题:为什么要使用mock函数? 在项目中,一个模块方法内常常会去调用另外一个模块方法。...jest中与mock相关api主要有三个,分别是jest.fn()、jest.mock()、jest.spyOn()。使用它们创建mock函数能够帮助我们更好测试项目中一些逻辑较复杂代码。...我们在测试中也主要是用到了mock函数提供以下三种特性: 捕获函数调用情况 设置函数返回值 改变函数内部实现 下面,我将分别介绍这三种方法以及他们在实际测试中应用。...jest.fn() jest.fn()是创建mock函数最简单方式,如果没有定义函数内部实现jest.fn()会返回undefined作为返回值。...expect(mockFn).toHaveBeenCalledWith('厦门','青岛','三亚'); }) jest.fn()所创建mock函数还可以设置返回值,定义内部实现或返回Promise

    5K20

    【架构师(第二十七篇)】前端单元测试框架 Jest 基础知识入门

    vscode 并且安装了 jest 插件,那么可以实时并且直观看到测试是否通过 Jest 实现异步测试 回调方式 // callback const fetchUser = (cb) => {...Mock 几大功能 创建 mock function,在测试中使用,用来测试回调 手动 mock,覆盖第三方实现,狸猫换太子 三大 API 实现不同粒度时间控制 函数测试 function mockTest...); }) 这里结果是 undefined ,因为并没有 mock 函数实现,所以默认为 undefined。...); console.log(mockCB.mock.results); }) 现在 mock 函数实现, 返回参数二倍,可以看见 value 变成了 84 function mockTest...); console.log(mockCB.mock.results); }) 还可以 mock 函数返回值,可以看见 value 变成了 20 第三方模块实现 // 一个真实网络请求模块 const

    1.3K20

    使用 Jest 进行前端单元测试

    Jest 是一款 Facebook 开源 JS 单元测试框架,具有 auto mock、自带 mock API、前端友好(集成JSDOM)、环境隔离等特点和优势。...此外,Jest 提供 mock API 也非常丰富。...) React 支持 为了能够通过测试用例实现对 React 组件变化做监控,14.0 以后版本 Jest 提供了 React 组件快照功能(React Tree Snapshot Testing)...除此之外 Jest 也可以结合 enzyme 更好在 React 项目中进行测试(enzyme 是 airbnb 开源一个 React 测试工具,通过 Shallow Rendering 实现对...另外因为在 fetch promise 链上连续操作,mock 时还要注意实现 response.json() 等操作。 这样代码不仅显得比较长,单独一个测试用例 mock 也很长。

    5.5K90

    前端单元测试之Jest

    前端测试框架有很多:mocha, jasmine, ava, testcafe, jest,他们都有各自擅长领域和特点,而我们采用jest框架具有如下一些特点: 适应性:Jest是模块化、可扩展和可配置...Jest框架内置了丰富断言语句,详细可以参考Jest Expect。...this.a = 1; this.b = 1; } sum() { return this.a + this.b; } } Hook.js主要实现两个数字相加功能...Mock函数通常会提供以下三种特性: 捕获函数调用情况; 设置函数返回值; 改变函数内部实现jest.fn() jest.fn()是创建Mock函数最简单方式,如果没有定义函数内部实现jest.fn.../__mock__/sum2'; it('test mock sum2', () => { //因为此时访问是__mock__文件夹下sum2.js所以测试通过 expect(sum2

    2.7K20

    JestMock网络请求

    npm run test:demo1: 简单地mock封装网络请求库。 npm run test:demo2: 采用重新实现并hook方式完成mock。...npm run test:demo3: 使用Jest库完成demo2实现。...,在Jest启动时会进行编译,在这里将这个库mock掉后,所有在之后引入这个库文件都是会获得mock对象,也就是说我们可以认为这个库已经重写了,重写之后方法都是JESTMock Functions...,所幸Jest提供了一种可以直接实现Mock函数库方式,当然实际上Jest还提供了mockImplementation方式,这个是在demo3中使用方式,在这里我们重写了被mock函数库,在实现时候也可以使用...jest.fn完成Implementations,这里通过在返回之前写入了一个hook函数,并且在各个test时再实现断言或者是指定返回值,这样就可以解决上述问题,实际上就是实现JestMock Functions

    3.4K30

    JestMock网络请求

    npm run test:demo1: 简单地mock封装网络请求库。 npm run test:demo2: 采用重新实现并hook方式完成mock。...npm run test:demo3: 使用Jest库完成demo2实现。...操作,在Jest启动时会进行编译,在这里将这个库mock掉后,所有在之后引入这个库文件都是会获得mock对象,也就是说我们可以认为这个库已经重写了,重写之后方法都是JESTMock Functions...,所幸Jest提供了一种可以直接实现Mock函数库方式,当然实际上Jest还提供了mockImplementation方式,这个是在demo3中使用方式,在这里我们重写了被mock函数库,在实现时候也可以使用...jest.fn完成Implementations,这里通过在返回之前写入了一个hook函数,并且在各个test时再实现断言或者是指定返回值,这样就可以解决上述问题,实际上就是实现JestMock Functions

    2.6K30

    一杯茶时间,上手 Jest 测试框架

    enjoy 编写测试用例 下面开始编码,实现对上面甜品功能单元测试。...4.Jest最锋利功能 Mock Functions 关于 Jest 测试框架中Mock功能,我们主要关注两点: mock function: 对函数进行mock. mock return value...从以上两点可以衍生出 Jest 对于代码单元测试中两项常用锋利功能: 对功能中业务逻辑简化后重新实现,方便有指向性进行测试(比如忽略实际场景中跨服务调用功能等,仅需将原有功能中对应调用逻辑改为定义测试数据即可...这里我们通过 jest.fn 进行 了 mock function 功能展示,通过执行 npm test 看到 .mock 结构信息: ?...通过 jest.mock ,我们 mock 了甜点评论区,这项操作可以使我们对dessertCommentModule中所有功能进行我们测试定制。

    1.9K20

    干货 | 携程租车React Native单元测试实践

    Mock函数 在单元测试中,有许多对象或函数并不需要真实引用,因此需要mock。...比如之前提到初始化文件jest.setup.js中,我们会mock一些对象: jest.useFakeTimers(); //mock时间 jest.mock('....即可: jest.mock('InteractionManager'); 六、Jest UI快照测试 Jest提供了snapshot快照功能用于UI测试,可以创建组件渲染快照并将其与以前保存快照进行比较...创建一个mock函数,该mock函数不仅捕获函数调用情况,还可以正常执行被spy函数。...在携程租车前端单元测试实践中,我们总结出几个要点: 将待测试组件当成黑盒,不用考虑内部逻辑实现; UI改动频繁,优先保证公用组件,工具函数,核心代码单元测试; 模拟数据尽量真实; 多考虑边界条件情况

    6.1K30

    前端自动化测试

    ,改出BUG 一个组件多个页面复用,修改后测试回归任务重 技术选型 目前前端整体测试框架较为常用有: Jest Mocha Jest 源自Facebook,Jest 一个理念是提供一套完整集成...包含单元测试运行器、断言库、Mock库 内置代码覆盖率报告 可以与Typescript一同使用 零配置,开箱即用 Mocha 仅仅是测试运行器,虽然灵活,需要自己配置很多东西。...这里可以首先简单看一下,Jest+Enzyme基本语法: JestAPI更多着力于定义测试、断言、mock库 定义测试: describe: 定义一个测试套件(test suite) it: 定义一个测试...(test) beforeEach: 定义一个回调函数在每个测试之前执行 expect: 执行一个断言 jest.fn(): 创造一个mock函数 一些用于断言方法: toEqual: 验证两个值是否相同...,大幅提升测试性能 mount: 实现Full Rendering 比如说当我们需要对DOM API交互或者你需要测试组件整个生命周期时候,需要使用这个方法。

    1.9K20
    领券