|
|
1 viikko sitten | |
|---|---|---|
| .. | ||
| src | 3 viikkoa sitten | |
| testing | 3 viikkoa sitten | |
| tests | 3 viikkoa sitten | |
| README.md | 4 viikkoa sitten | |
| jest-preset.cjs | 3 viikkoa sitten | |
| jest-preset.js | 3 viikkoa sitten | |
| jest-preset.json | 3 viikkoa sitten | |
| jest-preset.ts | 3 viikkoa sitten | |
| jest.config.cjs | 3 viikkoa sitten | |
| package.json | 3 viikkoa sitten | |
| setup.ts | 3 viikkoa sitten | |
| tsconfig.json | 1 viikko sitten | |
Taro小程序测试工具包,为所有mini UI包提供统一的测试工具函数和mock配置。
pnpm add -D @d8d/mini-testing-utils
setupTestEnv - 设置Taro测试环境变量和全局对象renderTaroComponent - 封装@testing-library/react的render函数,支持Taro组件在您的mini UI包的jest.config.cjs中:
module.exports = {
// 使用预设配置
preset: '@d8d/mini-testing-utils/jest-preset',
// 可以覆盖或扩展预设配置
testMatch: [
'<rootDir>/tests/**/*.test.{ts,tsx}'
]
}
在测试文件中:
import {
renderTaroComponent,
setupTestEnv,
setupTaroMocks,
createTaroApiMocks,
screen,
fireEvent,
waitFor
} from '@d8d/mini-testing-utils'
// 设置测试环境
beforeEach(() => {
setupTestEnv()
setupTaroMocks()
})
// 渲染Taro组件
test('renders Taro component', () => {
const { getByText } = renderTaroComponent(<View>Hello</View>)
expect(getByText('Hello')).toBeInTheDocument()
})
// 使用Taro API mock
test('calls Taro API', () => {
const taroMocks = createTaroApiMocks()
taroMocks.showToast('Test message')
expect(taroMocks.showToast).toHaveBeenCalledWith('Test message')
})
在Jest配置的setupFilesAfterEnv中使用:
module.exports = {
// ...其他配置
setupFilesAfterEnv: [
'@d8d/mini-testing-utils/setup'
]
}
包提供以下导出路径:
@d8d/mini-testing-utils - 主入口,包含所有测试工具函数@d8d/mini-testing-utils/testing - 测试配置和mock文件导出@d8d/mini-testing-utils/jest-preset - Jest预设配置@d8d/mini-testing-utils/setup - 测试setup文件包已配置TypeScript源文件与JavaScript运行时的导出兼容性:
.d.ts类型定义文件此包基于现有mini项目的测试基础设施(mini/tests/setup.ts)构建,确保与现有测试模式兼容。
要更新现有页面包使用此测试工具包:
pnpm add -D @d8d/mini-testing-utils# 安装依赖
pnpm install
# 构建
pnpm build
# 运行测试
pnpm test
# 类型检查
pnpm typecheck
MIT