数据库

数据库测试


为确保查询返回预期数据、RLS策略正确应用等,我们建议您编写自动化测试。主要有两种测试方法:

  • 首先,您可以使用应用程序中相同的编程语言和喜爱的测试框架,编写与Supabase客户端实例交互的测试(与应用程序代码中使用Supabase客户端的方式相同)。

  • 其次,您可以通过Supabase CLI进行测试,这是一种更底层的测试方法,使用SQL编写测试。

使用Supabase CLI进行测试

您可以使用Supabase CLI测试数据库。所需最低CLI版本为v1.11.4。开始步骤:

创建测试

supabase文件夹内创建测试目录:

1
mkdir -p ./supabase/tests/database

创建一个新的.sql扩展名文件用于存放测试:

1
touch ./supabase/tests/database/hello_world.test.sql

编写测试

所有sql文件都使用pgTAP作为测试运行器。

让我们编写一个简单测试来检查auth.users表是否有ID列。打开hello_world.test.sql并添加以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
begin;select plan(1); -- 只需运行一条语句SELECT has_column( 'auth', 'users', 'id', 'id列应存在');select * from finish();rollback;

运行测试

运行测试可使用命令:

1
supabase test db

这将产生以下输出:

1
2
3
4
5
$ supabase test dbsupabase/tests/database/hello_world.test.sql .. ok所有测试通过。文件数=1, 测试数=1, 耗时1秒 (0.01用户 0.00系统 + 0.04子用户 0.02子系统 = 0.07 CPU)结果: 通过

更多资源