当前位置: 首页 > news >正文

义乌公司网站制作凉山州建设局网站

义乌公司网站制作,凉山州建设局网站,做手机版网站和做app差别,网站开发要学哪些知识1、基本的示例 单元测试是软件开发非常基础的一部分。单元测试会封闭执行最小化单元的代码#xff0c;使得添加新功能和追踪问题更容易。Vue 的单文件组件使得为组件撰写隔离的单元测试这件事更加直接。它会让你更有信心地开发新特性而不破坏现有的实现#xff0c;并帮助其他…1、基本的示例 单元测试是软件开发非常基础的一部分。单元测试会封闭执行最小化单元的代码使得添加新功能和追踪问题更容易。Vue 的单文件组件使得为组件撰写隔离的单元测试这件事更加直接。它会让你更有信心地开发新特性而不破坏现有的实现并帮助其他开发者理解你的组件的作用。 这是一个判断一些文本是否被渲染的简单的示例 templatedivinput v-modelusernamedivv-iferrorclasserror{{ error }}/div/div /template script export default {name: Hello,data () {return {username: }},computed: {error () {return this.username.trim().length 7? Please enter a longer username: }} } /scriptimport { shallowMount } from vue/test-utils import Hello from ./Hello.vue test(Hello, () {// 渲染这个组件const wrapper shallowMount(Hello)// username 在除去头尾空格之后不应该少于 7 个字符wrapper.setData({ username: .repeat(7) })// 确认错误信息被渲染了expect(wrapper.find(.error).exists()).toBe(true)// 将名字更新至足够长wrapper.setData({ username: Lachlan })// 断言错误信息不再显示了expect(wrapper.find(.error).exists()).toBe(false) })上述代码片段展示了如何基于 username 的长度测试一个错误信息是否被渲染。它展示了 Vue 组件单元测试的一般思路渲染这个组件然后断言这些标签是否匹配组件的状态。 2、为什么要测试 组件的单元测试有很多好处 提供描述组件行为的文档节省手动测试的时间减少研发新特性时产生的 bug改进设计促进重构自动化测试使得大团队中的开发者可以维护复杂的基础代码 3、实际的例子 单元测试应该 可以快速运行易于理解只测试一个独立单元的工作我们在上一个示例的基础上继续构建同时引入一个工厂函数 (factory function)使得我们的测试更简洁更易读。这个组件应该展示一个“Welcome to the Vue.js cookbook”的问候语提示用户输入用户名如果输入的用户名少于七个字符则展示错误信息让我们先看一下组件代码 templatedivdiv classmessage{{ message }}/divEnter your username: input v-modelusernamedivv-iferrorclasserrorPlease enter a username with at least seven letters./div/div /template script export default {name: Foo,data () {return {message: Welcome to the Vue.js cookbook,username: }},computed: {error () {return this.username.trim().length 7}} } /script我们应该测试的内容有 message 是否被渲染如果 error 是 true则 应该展示 如果 error 是 false则 不应该展示我们的第一次测试尝试 import { shallowMount } from vue/test-utils import Foo from ./Foo.vue describe(Foo, () {it(renders a message and responds correctly to user input, () {const wrapper shallowMount(Foo, {data: {message: Hello World,username: }})// 确认是否渲染了 messageexpect(wrapper.find(.message).text()).toEqual(Hello World)// 断言渲染了错误信息expect(wrapper.find(.error).exists()).toBeTruthy()// 更新 username 并断言错误信息不再被渲染wrapper.setData({ username: Lachlan })expect(wrapper.find(.error).exists()).toBeFalsy()}) })上述代码有一些问题 单个测试断言了不同的事情很难阐述组件可以处于哪些不同的状态以及它该被渲染成什么样子接下来的示例从这几个方面改善了测试每个 it 块只做一个断言让测试描述更简短清晰只提供测试需要的最小化数据把重复的逻辑重构到了一个工厂函数中 (创建 wrapper 和设置 username 变量)更新后的测试 import { shallowMount } from vue/test-utils import Foo from ./Foo const factory (values {}) {return shallowMount(Foo, {data () {return {...values}}}) } describe(Foo, () {it(renders a welcome message, () {const wrapper factory()expect(wrapper.find(.message).text()).toEqual(Welcome to the Vue.js cookbook)})it(renders an error when username is less than 7 characters, () {const wrapper factory({ username: })expect(wrapper.find(.error).exists()).toBeTruthy()})it(renders an error when username is whitespace, () {const wrapper factory({ username: .repeat(7) })expect(wrapper.find(.error).exists()).toBeTruthy()})it(does not render an error when username is 7 characters or more, () {const wrapper factory({ username: Lachlan })expect(wrapper.find(.error).exists()).toBeFalsy()}) })注意事项 在一开始工厂函数将 values 对象合并到了 data 并返回了一个新的 wrapper 实例。这样我们就不需要在每个测试中重复 const wrapper shallowMount(Foo)。另一个好处是当你想为更复杂的组件在每个测试中伪造或存根一个方法或计算属性时你只需要声明一次即可。 4、额外的上下文 上述的测试是非常简单的但是在实际情况下 Vue 组件常常具有其它你想要测试的行为诸如 调用 API为 Vuex 的 storecommit 或 dispatch 一些 mutation 或 action测试用户交互我们在 Vue Test Utils 的教程中提供了更完整的示例展示这些测试。 Vue Test Utils 及庞大的 JavaScript 生态系统提供了大量的工具促进 100% 的测试覆盖率。单元测试只是整个测试金字塔中的一部分。其它类型的测试还包括 e2e (端到端) 测试、快照比对测试等。单元测试是最小巧也是最简单的测试——它们通过隔离单个组件的每一个部分来在最小工作单元上进行断言。 快照比对测试会保存你的 Vue 组件的标记然后比较每次新生成的测试运行结果。如果有些东西改变了开发者就会得到通知并决定这个改变是刻意为之 (组件更新时) 还是意外发生的 (组件行为不正确)。 端到端测试致力于确保组件的一系列交互是正确的。它们是更高级别的测试例如可能会测试用户是否注册、登录以及更新他们的用户名。这种测试运行起来会比单元测试和快照比对测试慢一些。 单元测试中开发的时候是最有用的即能帮助开发者思考如何设计一个组件或重构一个现有组件。通常每次代码发生变化的时候它们都会被运行。
http://www.dnsts.com.cn/news/108817.html

相关文章:

  • 建设电影会员网站首页企业局域网
  • 做网站的会淘宝美工么网站建设是永久使用吗
  • 网站域名注册信息wordpress分类文章排序
  • 自己做单词卡的网站是什么做和别人类似的网站侵权吗
  • 怎么注册建设公司网站天津建站平台
  • 如何做网站的后台win8风格网站模板
  • 化妆品网站建设策略创办一个网站需要多少钱
  • 网站如何做提现功能网站特点怎么写
  • 卫浴网站模板万能浏览器最新下载
  • seo网站排名优化公司青岛君哲网站建设公司怎么样
  • 做爰网站1000部双语网站建设网站
  • 美观网站建设物美价廉网站如何做修改密码的相关验证
  • wordpress购物车保存企业网站seo哪里好
  • 电子商务网站建设一般流程定陶网站建设
  • 河北特定网站建设推荐海南省住房和建设厅网站
  • 建设行业个人信息网站郑州网站seo优化
  • 网站报价怎么做保山网站开发
  • asp.net做网站有何意义网站设计行业前景
  • 贵阳市做网站的公司什么网站可以找到手工活做
  • 自适应网站开发文字大小如何处理html5网页制作代码大全
  • 2015做导航网站有哪些网站互动性
  • 请人做网站花多少钱广州做网站那家好
  • 个人网站开发意义大学生兼职网站开发毕设论文
  • 性能网站建设上海网站建设哪里好
  • 建站公司现状公司建设网站需要去哪报备
  • 有代做医学统计图的网站吗优化关键词怎么做
  • 哪些网站可以做自媒体wordpress安装图片不显示不出来
  • 中国建设银行下载官方网站密云手机网站建设
  • 有没有必要给企业做网站有关建筑的网站
  • 多语言网站开发类似互推商盟的推广平台