前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单元测试

单元测试

作者头像
Jimmy_is_jimmy
发布2020-11-19 14:06:27
5230
发布2020-11-19 14:06:27
举报
文章被收录于专栏:call_me_R

.markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.5;margin-top:35px;margin-bottom:10px;padding-bottom:5px}.markdown-body h1{font-size:30px;margin-bottom:5px}.markdown-body h2{padding-bottom:12px;font-size:24px;border-bottom:1px solid #ececec}.markdown-body h3{font-size:18px;padding-bottom:0}.markdown-body h4{font-size:16px}.markdown-body h5{font-size:15px}.markdown-body h6{margin-top:5px}.markdown-body p{line-height:inherit;margin-top:22px;margin-bottom:22px}.markdown-body img{max-width:100%}.markdown-body hr{border:none;border-top:1px solid #ddd;margin-top:32px;margin-bottom:32px}.markdown-body code{word-break:break-word;border-radius:2px;overflow-x:auto;background-color:#fff5f5;color:#ff502c;font-size:.87em;padding:.065em .4em}.markdown-body code,.markdown-body pre{font-family:Menlo,Monaco,Consolas,Courier New,monospace}.markdown-body pre{overflow:auto;position:relative;line-height:1.75}.markdown-body pre>code{font-size:12px;padding:15px 12px;margin:0;word-break:normal;display:block;overflow-x:auto;color:#333;background:#f8f8f8}.markdown-body a{text-decoration:none;color:#0269c8;border-bottom:1px solid #d1e9ff}.markdown-body a:active,.markdown-body a:hover{color:#275b8c}.markdown-body table{display:inline-block!important;font-size:12px;width:auto;max-width:100%;overflow:auto;border:1px solid #f6f6f6}.markdown-body thead{background:#f6f6f6;color:#000;text-align:left}.markdown-body tr:nth-child(2n){background-color:#fcfcfc}.markdown-body td,.markdown-body th{padding:12px 7px;line-height:24px}.markdown-body td{min-width:120px}.markdown-body blockquote{color:#666;padding:1px 23px;margin:22px 0;border-left:4px solid #cbcbcb;background-color:#f8f8f8}.markdown-body blockquote:after{display:block;content:""}.markdown-body blockquote>p{margin:10px 0}.markdown-body ol,.markdown-body ul{padding-left:28px}.markdown-body ol li,.markdown-body ul li{margin-bottom:0;list-style:inherit}.markdown-body ol li .task-list-item,.markdown-body ul li .task-list-item{list-style:none}.markdown-body ol li .task-list-item ol,.markdown-body ol li .task-list-item ul,.markdown-body ul li .task-list-item ol,.markdown-body ul li .task-list-item ul{margin-top:0}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:3px}.markdown-body ol li{padding-left:6px}@media (max-width:720px){.markdown-body h1{font-size:24px}.markdown-body h2{font-size:20px}.markdown-body h3{font-size:18px}}

单元测试是什么

单元测试是一种软件测试,其测试软件的各个单元或组件。目的是验证软件代码每个单元是否按照预期执行。单元测试由开发人员在应用程序的开发(编码阶段)中完成。单元测试隔离一段代码并验证其正确性。一个单元可能是单个功能,方法,过程,模块或对象

为什么做单元测试

  • 在开发阶段,单元测试可以帮助更早发现并修复BUG,并节省成本
  • 它有助于开发人员了解代码库,并使他们能够快速做出修改
  • 好的单元测试相当于项目文档
  • 单元测试有助于代码重用,将我们的代码和测试都迁移到新项目。调整代码,直到测试再次运行。

单元测试的好处

  • 通过单元测试,开发者可以了解到提供了什么功能,对单元测试API有基本了解
  • 单元测试允许程序员在以后重构代码,并确保模块仍然正常工作(即回归测试)。该过程是针对所有功能和方法编写测试用例,以便每当更改导致故障时,都可以快速识别并修复该故障。
  • 由于单元测试的模块化性质,我们可以测试项目的各个部分,而无需等待其他部分完成。

单元测试的坏处

  • 单元测试不能够捕获程序中每个错误。即使在最简单的程序中,也不可能评估每种单元测试执行的路径。
  • 单元测试的本质是将重点放在代码的单元上。因此,它不能捕获集成测试的错误和更广泛的系统层面的错误。

推荐:单元测试和其他测试手段一起使用

VUE项目中使用单元测试

我们使用Vue-Test-Utils这个Vue.js官方的单元测试实用工具库,来编写VUE应用中的单元测试。

安装

这里,我们默认已经通过VUE的脚手架生成了项目,那么我们集成unit-jest插件就可以了。

代码语言:javascript
复制
vue add @vue/unit-jest
编写简单测试用例

单元测试的文件:

代码语言:javascript
复制
// tests/unit/example.spec.js
import { shallowMount } from '@vue/test-utils'
import HelloWorld from '@/components/HelloWorld.vue'

describe('HelloWorld.vue', () => {
  it('renders props.msg when passed', () => {
    const msg = 'new message'
    const wrapper = shallowMount(HelloWorld, {
      propsData: { msg }
    })
    expect(wrapper.text()).toMatch(msg)
  })
})

单元测试的组件:

代码语言:javascript
复制




export default {
  name: 'hello-world',
  data() {
    return {}
  },
  props: {
    msg: {
      type: String,
      default: 'this is props msg'
    }
  }
}

此时,执行下面的命令行即可:

代码语言:javascript
复制
yarn run test:unit
或者
npm run test:unit

这个时候,你就可以在控制台上看到测试用例正在跑~

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 单元测试是什么
  • 为什么做单元测试
  • 单元测试的好处
  • 单元测试的坏处
  • VUE项目中使用单元测试
    • 安装
      • 编写简单测试用例
      • 参考资料
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档