This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cyber-narrator-cn-ui/test/Test.test.js

57 lines
1.9 KiB
JavaScript
Raw Normal View History

/**
* jest: https://jestjs.io/docs/getting-started
* vue-jest: https://test-utils.vuejs.org/guide/
* */
2022-12-06 17:01:46 +08:00
import Test from '../src/Test'
import { mount } from '@vue/test-utils'
import { getNameByEventType } from '@/utils/tools'
import axios from 'axios'
2022-12-06 17:01:46 +08:00
// 模拟的axios返回数据
const mockPostList = { data: { id: 2, title: 'title2' } }
describe('单元测试demo', () => {
test('Vue组件--点击按钮后count的值+1', async () => {
// 加载vue组件获得实例
const wrapper = mount(Test)
// 取到文本和按钮的dom
const textNode = await wrapper.get('[test-id="count"]')
const button = await wrapper.get('[test-id="button"]')
// 断言文本dom的内容是否是'0'
expect(textNode.text()).toContain('0')
// 模拟按钮dom点击执行click()方法
await button.trigger('click')
// 断言点击按钮后文本dom的内容是否是'1'
expect(textNode.text()).toContain('1')
// 再次点击
await button.trigger('click')
// 断言点击按钮后文本dom的内容是否是'2'
expect(textNode.text()).toBe('2')
/* 更多断言类型https://jestjs.io/docs/expect */
})
2022-12-06 17:01:46 +08:00
test('Vue组件--直接获取vue实例中的data和method', async () => {
// 模拟axios返回数据
axios.get.mockResolvedValue(mockPostList)
// 加载vue组件获得实例
const wrapper = mount(Test)
const textNode2 = await wrapper.get('[test-id="title"]')
// 通过wrapper.vm.xxx直接执行click方法、获取data的数据
expect(wrapper.vm.count).toEqual(0)
await wrapper.vm.click()
expect(wrapper.vm.count).toBe(1)
2022-12-06 17:01:46 +08:00
expect(textNode2.text()).toEqual('title')
await wrapper.vm.getPosts()
await wrapper.vm.$nextTick(() => {
expect(textNode2.text()).toBe('title2')
})
})
2022-12-06 17:01:46 +08:00
test('js方法--getNameByEventType', async () => {
expect(getNameByEventType('http error')).toBe('http error ratio')
})
2022-12-06 17:01:46 +08:00
})