测试金字塔、框架内置测试、以及你的项目测试模板。
| 层级 | 占比 | 速度 | 用途 |
|---|---|---|---|
| 单元测试 | 70% | <10ms | 独立函数 / 组件逻辑 |
| 集成测试 | 20% | <100ms | 路由 + SSR + 渲染 |
| E2E 测试 | 10% | 秒级 | 关键用户流程 |
KISS 使用 Deno 内置测试运行器——零额外依赖:
// __tests__/context_test.ts
import { assertEquals } from 'jsr:@std/assert';
import { extractParams, parseQuery } from '@kissjs/core';
Deno.test('extractParams 解析动态片段', () => {
const params = extractParams('/users/:id', '/users/42');
assertEquals(params, { id: '42' });
});// tests/api_test.ts
import { assertEquals } from 'jsr:@std/assert';
Deno.test('API 返回 posts', async () => {
const res = await fetch('http://localhost:3000/api/posts');
assertEquals(res.status, 200);
const data = await res.json();
assertEquals(Array.isArray(data), true);
});# .github/workflows/test.yml
name: Test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: denoland/setup-deno@v2
- run: deno test --allow-read --allow-write