首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

前端测试体系建设与最佳实践总结

笔者在今年 5 月份参加 Vueconf 的时候,Vue 单元测试的主题演讲者曾向现场的参与者发出提问,有多少团队引入了单元测试,意外的是只有寥寥数人举起了手。...结论 经过分析,最后我们项目的技术选型为 Jest + React Testing Library + Puppeteer 而对于 Vue 的项目,为了保持技术栈的统一,我们选用了 Jest + Vue-Test-Utils...@3 生成了 Vue 项目。...LocalStorage 因为 Jest 的环境是基于 jsdom, 所以我们需要去模拟 localstorage 的行为。借鉴 Vue2.0 里数据侦测的方法。...但是 Vue 有个特点,基本上重要的库比如 Vue-Router, Vuex 都是官方维护,同样的 Vue Test Utils 也是 Vue.js 官方的单元测试工具库。

5.3K30

从0开始构建一个Oauth2Server服务 删除应用程序

删除应用程序和撤销Secrets 开发人员将需要一种方法来删除(至少停用)他们的应用程序。为开发人员提供一种方法来为他们的应用程序撤销和生成新的客户端密码也是一个好主意。...删除应用程序应立即撤销所有访问令牌和颁发给该应用程序的其他凭证,例如待处理的授权代码和刷新令牌。 撤销Secrets 该服务应为开发人员提供一种重置客户端密码的方法。...在秘密被意外暴露的情况下,开发人员需要一种方法来确保可以撤销旧秘密。撤销秘密并不一定会使用户的访问令牌无效,因为如果开发人员还想使所有用户令牌无效,他们总是可以删除应用程序。...重置秘密应该使所有现有的访问令牌保持活动状态。然而,这确实意味着任何使用旧密钥的已部署应用程序将无法使用旧密钥刷新访问令牌。已部署的应用程序需要先更新其机密,然后才能使用刷新令牌

9520

Vue 应用单元测试的策略与实践 01 - 前言和目标

不谈论的包括: ATT 验收测试 E2E 端到端测试,这个是我想进一步探索的话题,特别是在 TDD 的语境下。...阅读和练习本文的Jest的部分 // Then 他能够把Given/When/Then的套路学会 他能够学会Jest的基本用法,包括测试suite和断言等语法 他能够学会Jest中测试异步的几种方式 2...他能够在项目背景下合理配置单元测试的测试策略 于是乎,这就是本系列文章的大纲,先放出来给大家一个对于 Vue 应用单元测试的全局观: ## 单元测试基础 ### 为什么选择 Jest ### Jest...测试是重构的唯一保障,也就是说,没有测试,基本上就没法重构代码(重构指的是 不改变软件可观测行为的前提下改善代码内部设计实现 ),基本上就只能看着代码腐化。...未完待续…… ## 单元测试基础 ### 为什么选择 Jest ### Jest 的基本用法 ### 该如何测试异步代码?

86240

Vue项目框架搭建(不定时更新)

vue-cli官方文档 创建项目 vue create cloud-film-vue 安装依赖 vscode中,在终端打开文件夹,然后 npm installyarn npm install... vue add yarn 启动项目 yarn run dev npm run dev 以上是开发环境下,若是生产环境,dev换成build 添加单元测试 更多jest用法,阅读官方文档...jest官方 根目录下(与src文件夹同级目录)新建 test文件夹 安装jest yarn add jest npm install --save-dev jest 配置jest启动方式 在...\CloudFilmVueVersion-Practice\cloudFilm-vue\cloud-film-vue> yarn test yarn run v1.22.4 $ jest PASS...(VueRouter) 状态管理 Vuex Vue使用Vuex进行状态管理,其核心思想同redux类型,详情参见 Vuex中文文档 安装 npm install vuex --save yarn

88240

从0开始构建一个Oauth2Server服务 构建服务器端应用程序

该应用程序交换访问令牌的授权代码 最后,应用程序使用授权代码通过向授权服务器的令牌端点发出 HTTPS POST 请求来获取访问令牌。...重定向网址无效 如果提供的重定向 URL 无效,授权服务器将不会重定向到它。相反,它可能会向用户显示一条描述问题的消息。...参数无效 如果一个多个参数无效,例如缺少所需的值参数response_type错误,服务器将重定向到重定向 URL 并包括描述问题的查询字符串参数。...invalid_scope: 请求的范围无效、未知格式错误。 server_error: 授权服务器遇到意外情况,无法满足请求。...如果应用程序想要使用授权码授予但不能保护其秘密(即本机移动应用程序单页 JavaScript 应用程序),则在发出请求以交换授权码以获取访问令牌时不需要客户端秘密,并且还必须使用 PKCE。

17020

在老项目中集成Eslint【02】

install eslint-config-airbnb -D,然后对配置文件稍加改造: 我们需要移除到官方自带的默认配置eslint:recommended,替换成airbnb,然后我们重新检测文件 不出意外...我们并不需要,所以我们只需要使用base包即可,当然base包也需要依赖eslint-plugin-import包,所以我们同时也需要下载这个包,这个包的作用是为了检测import引入文件时出现路径和无效导出等问题的包...": "eslint --ext .js,.vue src", "lint:fix": "eslint --fix --ext .js,.vue src" 这个时候npm run lint检测一下,不出意外...eslint-import-resolver-webpack类似,主要是为了解决alias的问题 eslint-plugin-react: React专用的校验规则插件. eslint-plugin-jest...: Jest专用的Eslint规则校验插件. eslint-plugin-prettier: 该插件辅助Eslint可以平滑地与Prettier一起协作,并将Prettier的解析作为Eslint的一部分

1.2K30

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

,也可以解释为 3A 即: GWT 3A 说明 Given Arrange 准备测试测试数据,有时可以抽取到 beforeEach When Act 采取行动,一般来说就是调用相应的模块执行对应的函数方法.../sound-player 这个文件当中 export 出来的,而被 Mock 之后我们的测试就可以使用 Mock 所返回的数据方法,从而保证模块所返回的内容是我们所期望的。...但也有一个不错的点,可以通过 Promise 的 .resolve() 和 .reject() 方法使测试分别验证正常异常的情况。...## Vue 单元测试 ### Vue 组件的渲染方式 ### Wrapper find() 方法与选择器 ### UI 组件交互行为的测试 ## Vuex 单元测试 ### CQRS 与 Redux-like...架构 ### 如何对 Vuex 进行单元测试 ### Vue组件和Vuex store的交互 ## Vue 应用测试策略 ### 单元测试的特点及其位置 ### 单元测试的关注点 ### 应用测试的测试策略

2.2K20

也来扯扯 Vue 单元测试

App'){{/if_eq}}{{#if_eq runner "jest"}}.toEqual('Welcome to Your Vue.js App'){{/if_eq}} }) }) 使用 vue-test-utils...在正式版发布之前可能会有大的更改,例如新增废弃一些方法。同时也可能存在一些 BUG(自己就曾修复过一个 ?)。但目前总体来说已趋于稳定,推荐使用,需要留意其最新更改。...而使用 Jest 后,只要安装它,全都搞定了。 全面的官方文档,易于学习和使用 Jest 的官方文档很完善,对着文档很快就能上手。...Jest 甚至提供了 jest-codemods 这一工具,用来将使用其它包的测试迁移为使用 Jest 缺点 jsdom 的一些局限性 因为 Jest 是基于 jsdom 的,jsdom 毕竟不是真实的浏览器环境...周边相关的包可能还不完善 例如 vue-jest,目前的版本并不能完全实现 vue-loader 的功能。比如,使用 sass,postcss 之类的功能,它会抛出警告信息。

1.8K30

手摸手教你封装跨项目复用的 Vue 组件库

足够抽象,不包含业务逻辑,扩展性足够好 尽量不包含 $t、$router 等和项目环境有关的依赖 有覆盖率足够高的单元测试 有必要的文档,通过单元测试描述了足够完整的功能 最好也提供可运行的例子 发布到...所以单元测试也愈发重要起来,库里的组件模块,凡是有条件的(比如 Vue 中的 directives 就没那么好做单元测试,但 filters 纯函数很容易),想要让各个项目的开发者小伙伴们放心大胆的统一引用...这里以 jest 为例,列举其主要配置: // jest.config.js module.exports = { modulePaths: [ '/src/' ],...moduleFileExtensions: [ 'js', 'json', 'vue' ], transform: { '^.+\\.vue$': 'vue-jest...(css|less|scss)$': '/__mocks__/emptyMock.js' }, snapshotSerializers: [ 'jest-serializer-vue

2.6K10
领券