数据库测试
为确保查询返回预期数据、RLS策略正确应用等,我们建议您编写自动化测试。主要有两种测试方法:
-
首先,您可以使用应用程序中相同的编程语言和喜爱的测试框架,编写与Supabase客户端实例交互的测试(与应用程序代码中使用Supabase客户端的方式相同)。
-
其次,您可以通过Supabase CLI进行测试,这是一种更底层的测试方法,使用SQL编写测试。
使用Supabase CLI进行测试
您可以使用Supabase CLI测试数据库。所需最低CLI版本为v1.11.4。开始步骤:
- 在本地机器上安装Supabase CLI
创建测试
在supabase
文件夹内创建测试目录:
1mkdir -p ./supabase/tests/database
创建一个新的.sql
扩展名文件用于存放测试:
1touch ./supabase/tests/database/hello_world.test.sql
编写测试
所有sql
文件都使用pgTAP作为测试运行器。
让我们编写一个简单测试来检查auth.users
表是否有ID列。打开hello_world.test.sql
并添加以下代码:
123456789101112begin;select plan(1); -- 只需运行一条语句SELECT has_column( 'auth', 'users', 'id', 'id列应存在');select * from finish();rollback;
运行测试
运行测试可使用命令:
1supabase test db
这将产生以下输出:
12345$ supabase test dbsupabase/tests/database/hello_world.test.sql .. ok所有测试通过。文件数=1, 测试数=1, 耗时1秒 (0.01用户 0.00系统 + 0.04子用户 0.02子系统 = 0.07 CPU)结果: 通过