当前位置:   article > 正文

Vue前端自动化测试-Vue Test Utils

vue test utils

Vue Test Utils简介

vue-test-utils是vue官方的单元测试框架,提供了一系列非常方便的工具,使我们更轻松地为vue构建的应用来编写单元测试。主流的JavaScript测试运行器有很多,但vue-test-utils都能支持。它是与测试运行器无关的。

环境配置

通过脚手架 vue-cli 来新建项目的时候,如果选择了 Unit Testing 单元测试且选择的是 Jest 作为测试运行器,那么在项目创建好后,就会自动配置好单元测试需要的环境。本文主要讲的就是新建项目之初没有选择单元测试功能,需要后面去添加的配置。

npm i @vue/cli-plugin-unit-jest -D
npm i @vue/test-utils -D
  1. v3:npm i @vue/vue3-jest@^27.0.0-alpha.1 -D
  2. v2:npm i @vue/vue2-jest@^27.0.0-alpha.2 -D

配置Jest

项目根目录创建jest.config.js文件

  1. module.exports = {
  2. //有啥需要就在这里配置...
  3. preset: "@vue/cli-plugin-unit-jest",
  4. };

配置package.json

  1. "scripts": {
  2. "test": "vue-cli-service test:unit",
  3. },

编写测试文件

项目根目录创建tests/unit/example.spec.js文件

  1. import { shallowMount } from "@vue/test-utils";
  2. import HelloWorld from "@/components/HelloWorld.vue";
  3. describe("HelloWorld.vue", () => {
  4. it("renders props.msg when passed", () => {
  5. const msg = "new message";
  6. const wrapper = shallowMount(HelloWorld, {
  7. props: { msg },
  8. });
  9. expect(wrapper.text()).toMatch(msg);
  10. });
  11. });

HelloWorld.vue文件 

  1. <template>
  2. <div class="hello">
  3. <h1>{{ msg }}</h1>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. name: 'HelloWorld',
  9. props: {
  10. msg: String
  11. }
  12. }
  13. </script>
  14. <style scoped>
  15. </style>

  • shallowMount 将会创建一个包含被挂载和渲染的 Vue 组件的 Wrapper,只存根当前组件,不包含子组件。
  • describe(name, fn) 这边是定义一个测试套件,HelloWorld.vue 是测试套件的名字,fn 是具体的可执行的函数
  • it(name, fn) 是一个测试用例,输入框初始值为空字符串 是测试用例的名字,fn 是具体的可执行函数;一个测试套件里可以保护多个测试用例。
  • expect 是 Jest 内置的断言风格,业界还存在别的断言风格比如 Should、Assert 等。
  • toBe 是 Jest 提供的断言方法,比如expect(1+1).toBe(2),更多的可以到Jest Expect 查看具体用法。

执行测试命令

npm run test

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号