Skip to content
Back to skills

Unit Testing

ASecurity

使用 Vitest 和 Vue Test Utils 的标准模版与断言技巧

  • 840 stars
  • 0 votes
  • 0 copies
  • 8 views
  • Added February 7, 2026
devopstypescriptgobashvuetestingapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned February 10, 2026

npx -y skills add TencentBlueKing/bk-bcs --skill unit-testing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Unit Testing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Unit Testing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tencentblueking-unit-testing/badge)](https://www.skillsdirectory.com/skills/tencentblueking-unit-testing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: qual-unit-test
name: Vue 3 组件单元测试指南 (Vitest)
category: quality
description: 使用 Vitest 和 Vue Test Utils 的标准模版与断言技巧
tags: [test, vitest, vue-test-utils, quality]
updated_at: 2026-01-09
---

# Vue 3 组件单元测试指南

采用 **Vitest** 作为测试运行器,配合 **@vue/test-utils** 进行组件测试。

## 环境准备

```json
"devDependencies": {
  "vitest": "^1.0.0",
  "@vue/test-utils": "^2.4.0",
  "jsdom": "^23.0.0"
}
```

## 测试模版

```typescript
import { mount } from '@vue/test-utils';
import { describe, it, expect, vi } from 'vitest';
import MyComponent from './MyComponent.vue';

describe('MyComponent.vue', () => {
  it('renders properly', () => {
    const wrapper = mount(MyComponent, {
      props: { title: 'Hello' }
    });
    expect(wrapper.text()).toContain('Hello');
  });

  it('emits event on click', async () => {
    const wrapper = mount(MyComponent);
    await wrapper.find('button').trigger('click');
    expect(wrapper.emitted()).toHaveProperty('submit');
  });
});
```

## 常用技巧

```typescript
// Mock 第三方组件
const wrapper = mount(MyComponent, {
  global: { stubs: { 'bk-table': true } }
});

// Mock API(文件顶部)
vi.mock('@/api/user', () => ({
  getUserInfo: vi.fn(() => Promise.resolve({ id: 1 }))
}));
```

## 运行测试

```bash
npm run test:unit
```

## 📦 按需加载资源

| 资源 | URI |
|-----|-----|
| 完整测试示例 | `skill://unit-testing/assets/component.spec.ts` |


---
## 📦 可用资源

- `skill://unit-testing/assets/component.spec.ts`

> 根据 SKILL.md 中的 IF-THEN 规则判断是否需要加载

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…