热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

React項目的UI測試

原文鏈接:ReduxTestingStepbyStep:ASimpleMethodologyforTestingBusinessLogic測試金字塔,來源於人們將多層構造運用在前端

原文鏈接:Redux Testing Step by Step: A Simple Methodology for Testing Business Logic

測試金字塔,來源於人們將多層構造運用在前端測試範疇(如圖1)。

《React項目的UI測試》

關於金字塔的構造眾口紛紜,這裏採納原作者的看法,並附上一些我在現實項目中所採納的手藝棧以及連繫一些已有的測試觀點:

  • 端到端測試:從外部測試全部app。在實在的瀏覽器或挪動裝備上運轉運用,運用實在的服務端數據。通常情況下,端到端測試都是由組內的特地測試職員舉行的(人力測試),此時的app也多數處於臨盆階段或許准臨盆階段,所用數據都是線上實在數據。
  • UI自動化測試:(相干詞條: 冒煙測試,黑盒測試,回歸測試,集成測試,BDD)從外部測試app的重要模塊。平常運轉在真是的裝備上,運用模仿服務器。前端自動化測試框架許多,這裡有一個鏈接:Top 5 Most Rated Node.js Frameworks for End-to-End Web Testing。CasperJS在襯着React DOM時會有些題目,Protractor是基於Angluar的,設置起來也有些貧苦,所以我在項目中運用了nightmare.js,他會挪用eletron虛擬出的瀏覽器舉行自動化測試,而且在項目中我們運用了一個特定舉行測試的數據庫。
  • 組件測試:從內部和UI和營業邏輯集成的測試。通常在node上運轉,運用模仿服務器。在我們的項目中,因為運用了facebook的CRA(create react app),自帶了Jest,自帶斷言庫,開箱即用很輕易,所以採納了Jest+Enzyme舉行組件測試。基礎教程網上許多,也能夠在Jest和Enzyme的官網上看,有翻譯版本。
  • 單位測試:(相干詞條: 白盒測試,TDD)拋開UI,將項目分割成多少的單位,舉行營業邏輯的測試。運用Node運轉,而且在每一個單位外運用模仿數據。

下面重要說一下組件和單位測試:

因為是基於react+redux+saga的單頁運用,每一個頁面,或許說組件的基礎構造分為四部份:sagas貯存營業邏輯,index席捲了相干的action和reducer,component只舉行UI襯着,container擔任鏈接store和component。所以我採納的測試計劃以下:

  • sagas: 運用redux-saga-test-plan,模仿generate function,運用模仿數據舉行測試,而且運用provider模仿http要求的數據、withReducer同時測試相干的selector、reducer和actions。
  • container:運用redux-mock-store模仿redux store以及響應的action和state dispatch婚配測試。
  • component: 運用enzyme的shallow和mock props襯着組件(如果是最底層的組件能夠用mount來測試react組件的生命周期),運用jest的mock function模仿點擊等的行動。
  • index:index重要部份已經在sagas和container部份測試過了,仔細的測試(我以為必要性不是很大)能夠參考redux的官方測試文檔。

在國內平常的開闢團隊都有特地的測試職員,然則在國外比較小的團隊就不會有。所以在開闢同時不斷更新測試代碼也是很有必要的。

這是幾個月來在測試方面的一些個人明白,若有不對或不夠仔細的處所還請人人斧正。


推荐阅读
  • CSS3圆角技术能非常好的美化你的页面效果,而且避免了使用图片辅助,一则省去了制作图片的时间,二则省去了浏览器加载图片造成的延迟和带宽。如 ... [详细]
  • 上次我们总结了React代码构建后的webpack模块组织关系,今天来介绍一下Babel编译JSX生成目标代码的一些规则,并且写一个简单的解析器,模拟整个生成的过程。我们还是拿最简 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • 软件自动化测试的学习路线
    软件自动化测试的学习步骤软件测试交流群关注软件测试技术公众号获取阅读目录软件自动化测试的学习步骤自动化测试的本质自动化测试学习的误区自动化测试的职位自动化测试分类Web自动化 ... [详细]
  • 一、vue介绍Vue.js是一套构建用户界面(UI)的渐进式JavaScript框架,是一个轻量级MVVM(model-view-viewModel&# ... [详细]
  • 本节书摘来自华章计算机《Web前端开发最佳实践》一书中的第2章,第2.2节,作者:党 建更多章节内容可以访问云栖社区“华章计算机”公众号查看。2.2 前端代码重构代码 ... [详细]
  • 媒介本日再看React纯函数的时刻,看到纯函数历程没有副作用,就是说在纯函数中我们不能转变外部状况.想到了之前看过的函数中传参的观点.数据范例在js中,数据范例分为两类:基础范例值 ... [详细]
  • Thisquestionalreadyhasananswerhere:这个问题已经有了答案:HowcanIdisplayaJavaScriptobje ... [详细]
  • $(document).ready没有 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 随着前端技术的发展,越来越多的开发者开始使用react、vue等web框架,但很少有人深入理解这些框架的源码。然而,这些框架底层都是由原生的javascript构建而成。对于初学前端的人来说,可能会认为javascript很容易上手,但实际上只是因为它被高度封装了。与能够使用封装类的人相比,能够理解框架原理的人则处于另一个层面。本文将深入剖析jquery源码,探寻框架底层的原理,帮助读者更好地理解web框架的运行机制。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
author-avatar
修魔海的传说
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有