Documentation
¶
Index ¶
- func BlackBoxTestSuit(t *testing.T, fn HandlerGenFn, config config.DatabaseList, ...)
- func BlackBoxTestSuitOfBuiltInTables(t *testing.T, fn HandlerGenFn, config config.DatabaseList, isFasthttp ...bool)
- func Cleaner(config config.DatabaseList)
- type DataCleaner
- type FasthttpHandlerGenFn
- type HandlerGenFn
- type Tester
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BlackBoxTestSuit ¶
func BlackBoxTestSuit(t *testing.T, fn HandlerGenFn, config config.DatabaseList, gens table.GeneratorList, cleaner DataCleaner, tester Tester, isFasthttp ...bool)
BlackBoxTestSuit 通用黑盒测试套件 参数:
- t: 测试对象,用于测试断言和报告
- fn: 处理器生成函数,用于创建 HTTP 处理器
- config: 数据库配置列表
- gens: 表生成器列表(可选,用于自定义表)
- cleaner: 数据清理函数,用于清理和初始化测试数据
- tester: 测试函数,用于执行具体的测试逻辑
- isFasthttp: 可变参数,是否使用 FastHTTP 框架(默认为 false)
说明:
该函数提供通用的黑盒测试框架,支持多种 Web 框架和数据库。 执行流程: 1. 调用 cleaner 函数清理和初始化测试数据 2. 根据 isFasthttp 参数选择测试框架(FastHTTP 或标准 HTTP) 3. 创建 httpexpect 客户端并执行测试
支持的框架:
- 标准框架(Gin、Echo、Chi 等):使用 httpexpect.NewBinder
- FastHTTP 框架:使用 httpexpect.NewFastBinder
使用场景:
- 编写自定义测试套件
- 测试自定义表和功能
- 集成第三方框架
使用示例:
func TestMyCustomTest(t *testing.T) {
BlackBoxTestSuit(t, gin.NewHandler, myConfig, myGenerators, myCleaner, myTester)
}
func BlackBoxTestSuitOfBuiltInTables ¶
func BlackBoxTestSuitOfBuiltInTables(t *testing.T, fn HandlerGenFn, config config.DatabaseList, isFasthttp ...bool)
BlackBoxTestSuitOfBuiltInTables 内置表黑盒测试套件 参数:
- t: 测试对象,用于测试断言和报告
- fn: 处理器生成函数,用于创建 HTTP 处理器
- config: 数据库配置列表
- isFasthttp: 可变参数,是否使用 FastHTTP 框架(默认为 false)
说明:
该函数是内置表黑盒测试的便捷包装器,调用通用的 BlackBoxTestSuit 函数。 使用 Cleaner 函数清理和初始化测试数据,使用 common.Test 函数执行测试。
测试内容:
- 认证测试(登录、登出)
- 权限管理测试(增删改查)
- 角色管理测试(增删改查、权限分配)
- 管理员管理测试(增删改查、角色分配)
- 菜单管理测试(增删改查、层级管理)
- 操作日志测试(记录查询)
使用示例:
func TestMyTest(t *testing.T) {
BlackBoxTestSuitOfBuiltInTables(t, gin.NewHandler, myConfig)
}
func Cleaner ¶
func Cleaner(config config.DatabaseList)
Cleaner 清理测试数据并插入初始测试数据 参数:config - 数据库配置列表 说明:
该函数执行以下操作: 1. 安全检查:验证数据库名称或 DSN 包含 "test" 字符串,防止误操作生产数据库 2. 清理数据:删除所有测试表中的数据 3. 重置自增 ID:根据数据库类型重置自增序列 4. 插入初始数据:插入测试所需的初始用户、角色、权限、菜单等数据
测试表列表:
- goadmin_users: 用户表
- goadmin_user_permissions: 用户权限关联表
- goadmin_session: 会话表
- goadmin_roles: 角色表
- goadmin_role_users: 角色用户关联表
- goadmin_role_permissions: 角色权限关联表
- goadmin_role_menu: 角色菜单关联表
- goadmin_permissions: 权限表
- goadmin_operation_log: 操作日志表
- goadmin_menu: 菜单表
初始数据:
- 用户:admin(管理员)、operator(操作员)
- 角色:Administrator(管理员)、Operator(操作员)
- 权限:All permission(所有权限)、Dashboard(仪表板)
- 菜单:Dashboard、Admin、Users、Permission、Menu、Operation log、User、test2 menu
数据库支持:
- MySQL: 使用 ALTER TABLE ... AUTO_INCREMENT = 1 重置自增
- PostgreSQL: 使用 ALTER SEQUENCE ... RESTART WITH 1 重置序列
- SQLite: 使用 update sqlite_sequence set seq = 0 重置序列
- MSSQL: 使用 DBCC CHECKIDENT (... RESEED, 0) 重置标识
注意事项:
- 如果数据库名称或 DSN 不包含 "test",函数会 panic
- 该函数会修改数据库内容,确保使用测试数据库
- 密码使用 bcrypt 加密,admin 密码为 "admin",operator 密码为 "operator"
Types ¶
type DataCleaner ¶
type DataCleaner func(config config.DatabaseList)
DataCleaner 数据清理函数类型 描述:
定义了数据清理函数的类型签名,用于清理和初始化测试数据
参数:
- config: 数据库配置列表
使用示例:
func myCleaner(config config.DatabaseList) {
// 清理和初始化测试数据
}
type FasthttpHandlerGenFn ¶
type FasthttpHandlerGenFn func(config config.DatabaseList, gens table.GeneratorList) fasthttp2.RequestHandler
FasthttpHandlerGenFn FastHTTP 处理器生成函数类型 描述:
定义了 FastHTTP 处理器生成函数的类型签名,用于创建 FastHTTP 请求处理器
参数:
- config: 数据库配置列表
- gens: 表生成器列表
返回值:
- fasthttp2.RequestHandler: FastHTTP 请求处理器
使用示例:
func myFastHandler(config config.DatabaseList, gens table.GeneratorList) fasthttp.RequestHandler {
return func(ctx *fasthttp.RequestCtx) {
// 处理请求
}
}
type HandlerGenFn ¶
type HandlerGenFn func(config config.DatabaseList, gens table.GeneratorList) http.Handler
HandlerGenFn 处理器生成函数类型 描述:
定义了 HTTP 处理器生成函数的类型签名,用于创建 HTTP 处理器
参数:
- config: 数据库配置列表
- gens: 表生成器列表
返回值:
- http.Handler: HTTP 处理器
使用示例:
func myHandler(config config.DatabaseList, gens table.GeneratorList) http.Handler {
r := gin.Default()
// 配置路由
return r
}
type Tester ¶
type Tester func(e *httpexpect.Expect)
Tester 测试函数类型 描述:
定义了测试函数的类型签名,用于封装具体的测试逻辑
参数:
- e: httpexpect.Expect 对象,用于 HTTP 请求和断言
使用示例:
func myTest(e *httpexpect.Expect) {
e.GET("/admin").Expect().Status(http.StatusOK)
}
Directories
¶
| Path | Synopsis |
|---|---|
|
Package common 提供GoAdmin框架的通用测试函数
|
Package common 提供GoAdmin框架的通用测试函数 |
|
frameworks
|
|
|
gear
Package gear 提供 GoAdmin 在 Gear Web 框架下的适配器实现
|
Package gear 提供 GoAdmin 在 Gear Web 框架下的适配器实现 |
|
gf
Package gf 提供 GoAdmin 在 GoFrame Web 框架下的适配器实现
|
Package gf 提供 GoAdmin 在 GoFrame Web 框架下的适配器实现 |
|
gf2
Package gf 提供 GoAdmin 在 GoFrame2 Web 框架下的适配器实现
|
Package gf 提供 GoAdmin 在 GoFrame2 Web 框架下的适配器实现 |
|
gin
Package gin 提供 GoAdmin 在 Gin Web 框架下的适配器实现
|
Package gin 提供 GoAdmin 在 Gin Web 框架下的适配器实现 |
|
gofiber
Package gofiber 提供 GoAdmin 在 GoFiber Web 框架下的适配器实现
|
Package gofiber 提供 GoAdmin 在 GoFiber Web 框架下的适配器实现 |
|
gorilla
Package gorilla 提供 GoAdmin 在 Gorilla Mux Web 框架下的适配器实现
|
Package gorilla 提供 GoAdmin 在 Gorilla Mux Web 框架下的适配器实现 |
|
iris
Package iris 提供 GoAdmin 在 Iris Web 框架下的适配器实现
|
Package iris 提供 GoAdmin 在 Iris Web 框架下的适配器实现 |
|
nethttp
Package nethttp 提供 GoAdmin 在 Go 标准库 net/http 下的适配器实现
|
Package nethttp 提供 GoAdmin 在 Go 标准库 net/http 下的适配器实现 |
|
Package tables 提供数据库表模型的定义和配置
|
Package tables 提供数据库表模型的定义和配置 |
|
Package web 提供 Web 页面测试的辅助工具
|
Package web 提供 Web 页面测试的辅助工具 |
Click to show internal directories.
Click to hide internal directories.