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

【架构师(第三十一篇)】前端测试之 TDD 开发方式

---- 什么是 TDD 开发方式 TDD(Test-Driven Development) 测试驱动开发 先根据需求写测试用例 测试用例全部是失败状态 开始写代码实现功能 将所有的测试用例由失败调为成功状态...input 中后,将新以事件形式发射出去。...点击右侧颜色,将新以事件形式发射出去,左侧修改为点击颜色。...; // 发射事件参数是否正确 expect(events[0]).toEqual([blackHex]); }); // 测试点击右侧颜色列表以后,是否发送对应 it...; // 发射事件参数是否正确 expect(events[1]).toEqual([defaultColors[0]]); }); }); 目前所有的测试用例都是失败,接下来我们就通过编码让测试用例通过

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

顺藤摸瓜:用单元测试读懂 vue3 中 defineComponent

也是我们熟悉 computed 选项键值对,为普通函数(即单个 getter)或 { getter, setter } 写法: export type ComputedOptions = Record...<   P = {}, // 从 props 选项中提取类型   B = {}, // 从 setup() 中返回被称作 RawBindings 绑定类型   D = {}, // data()...当一个传递给一个 prop attribute 时候,它就变成了那个组件实例一个 property。...,你可以为 props 中提供一个带有验证需求对象,而不是一个字符串数组。...,     // 带有默认对象     propE: {       type: Object,       // 对象或数组默认必须从一个工厂函数获取       default: function

2.6K20

《彻底掌握redux》之开发一个任务管理平台

3. redux相关生态使用(react-redux, keymirror, reduce-reducers) 3.1 react-redux react-redux核心思想是将所有组件分成渲染组件...所以用户只需要提供渲染组件来呈现视图,容器组件会由react-redux自动生成。所以整个过程看上去像这样: 我们来看看如何使用react-redux。...hasFailTodos: [], // 已经失败todo unDoneTodos: [], // 未完成todo // todo创建 ctLoading: false, ctErrorMes...使用异步action基本模式如下: 我们在异步开始时,成功时,失败时都会派发一个action,来通知用户操作状态。...我们可以想到是在请求拿到结果之后派发成功/失败action,一共有两种方式实现如上步骤: 在业务代码中请求回调中触发同步action 使用异步action 对于简单应用我们完全可以采用第一种方式来做

1K30

React Native+React Navigation+Redux开发实用教程

const nextState = RootNavigator.router.getStateForAction(action, state); // 如果`nextState`为null或未定义...函数原型:combineReducers(reducers) 参数:reducers (Object): 一个对象,它(value)对应不同 reducer 函数,这些 reducer 函数后面会被合并成一个...返回 (Function):一个调用 reducers 对象里所有 reducer reducer,并且构造一个与 reducers 对象结构相同 state 对象。...返回 (Store): 保存了应用所有 state 对象。改变 state 惟一方法是 dispatch action。你也可以 subscribe 监听 state 变化,然后更新 UI。...但要记住,如果第一个参数也就是传入 state 是 undefined 的话,reducer 应该返回初始 state

3.9K10

React进阶(6)-react-redux使用

纯组件",即它纯函数一样,输出结果纯粹由参数决定它,给定输入,便会有指定输出,与UI = render(data)完全吻合 容器组件(聪明组件) 容器组件特征与UI组件相反 负责管理数据和业务逻辑...变化,然后通过 getState来获取变化后。...这个对象有 inputValue和 list属性,它代表着 UI 组件同名参数,后面的 state.inputValue,以及 state.list就是从 Store中 state拿到内部组件输入框和底下列表...key是可以自定义 function mapDispatchToProps(dispatch) { return { attrActions: bindActionCreators...: boolean, } 结语 本文主要学习了如何使用 react-redux,使用 react-redux只是为了简化Redux,不使用react-redux也没有问题,只是使用react-redux

2K10

手把手教你全家桶之React(二)

因为我们用了webpack-dev-server,我们可以不需要向上图一样配置,只需要修改启动配置以修改默认,--hot项。.../store'; //初始 console.log(store.getState()); //监听每次更新 let unsubscribe = store.subscribe(() => console.log...react-redux 安装 react-redux npm install --save react-redux 组件state绑定 因为react-redux提供了connect方法,接收两个参数...src/index.js中,我们传入store 注:我们引用react-reduxProvider模块,它可以让所有的组件能访问到store,不用手动去传,也不用手动去监听。...正常我们去发起一个请求时,给用户呈现大概步骤如下: 页面加载,请求发起,出现loading效果 请求成功,停止loading效果,data渲染 请求失败,停止loading效果,返回错误提示。

1.7K80

如何提高redux开发效率?当然是redux-tookit啦!

# 前言 使用 react-redux 朋友都经历过这种痛苦吧? 定义一个 store 仓库,首先创建各种文件,比如 reducer、action、store......react-redux 创建仓库,文件目录如下: 好怀念使用 vuex 创建写仓库日子....... 直到有一天我发现了 redux-toolkit ,原来 redux 还能这样写呀!...createAsyncThunk 创建一个异步 action,方法触发时候会有三种状态: pending(进行中) fulfilled(成功) rejected(失败) export const getMovieData...// createAsyncThunk 创建一个异步action,方法触发时候会有三种状态: // pending(进行中)、fulfilled(成功)、rejected(失败) export const...} from "react-redux"; import { addNamesAction } from ".

22620

手把手教你全家桶之React(二)

因为我们用了webpack-dev-server,我们可以不需要向上图一样配置,只需要修改启动配置以修改默认,--hot项。.../store'; //初始 console.log(store.getState()); //监听每次更新 let unsubscribe = store.subscribe(() => console.log...react-redux 安装 react-redux npm install --save react-redux 组件state绑定 因为react-redux提供了connect方法,接收两个参数...src/index.js中,我们传入store 注:我们引用react-reduxProvider模块,它可以让所有的组件能访问到store,不用手动去传,也不用手动去监听。...正常我们去发起一个请求时,给用户呈现大概步骤如下: 页面加载,请求发起,出现loading效果 请求成功,停止loading效果,data渲染 请求失败,停止loading效果,返回错误提示。

1.3K30

React进阶(6)-react-redux使用

>; 因为不含有状态state,UI 组件又称为"纯组件",即它纯函数一样,输出结果纯粹由参数决定它,给定输入,便会有指定输出,与UI = render(data)完全吻合 容器组件(聪明组件...变化,然后通过 getState来获取变化后。...这个对象有 inputValue和 list属性,它代表着 UI 组件同名参数,后面的 state.inputValue,以及 state.list就是从 Store中 state拿到内部组件输入框和底下列表...key是可以自定义 function mapDispatchToProps(dispatch) { return { attrActions: bindActionCreators(todoActionCreators...: boolean,} 结语 本文主要学习了如何使用 react-redux,使用 react-redux只是为了简化Redux,不使用react-redux也没有问题,只是使用react-redux

2.2K00

React组件之间通信方式总结(下)

-save4.2 使用使用 类型校验需要 在 class 创建组件时创建静态属性 propTypes,是一个对象,对象属性是需要校验 属性,对应是校验规则;类型校验看static propTypes...= { name: PropType.string.isRequired, // 要求 name 是字符串类型 isRequired 表示必传 age: PropType.number.isRequired...// 要求 age 是数字类型,isRequired 表示必传}此外,还可以给 prop 设置默认,同样是通过类静态属性设置,在创建组件时需要配置 defaultProps 静态属性;该属性是一个对象...,该对象中属性是要设置默认 prop,是 prop 默认static defaultProps = { name: '珠峰', age: 10 }完整import React, {...Component } from 'react'import ReactDOM from 'react-dom'import PropType from 'prop-types'// React props

1.6K20

React组件通信方式总结(下)

-save4.2 使用使用 类型校验需要 在 class 创建组件时创建静态属性 propTypes,是一个对象,对象属性是需要校验 属性,对应是校验规则;类型校验看static propTypes...= { name: PropType.string.isRequired, // 要求 name 是字符串类型 isRequired 表示必传 age: PropType.number.isRequired...// 要求 age 是数字类型,isRequired 表示必传}此外,还可以给 prop 设置默认,同样是通过类静态属性设置,在创建组件时需要配置 defaultProps 静态属性;该属性是一个对象...,该对象中属性是要设置默认 prop,是 prop 默认static defaultProps = { name: '珠峰', age: 10 }完整import React, {...Component } from 'react'import ReactDOM from 'react-dom'import PropType from 'prop-types'// React props

1.3K40
领券