数据库

测试你的数据库


为了确保查询返回预期的结果,RLS 策略得到正确应用等等,我们鼓励你编写自动化测试。本质上,有两种方法来进行测试

  • 首先,你可以编写与 Supabase 客户端实例(就像你在应用程序代码中使用 Supabase 客户端一样)进行交互的测试,使用你在应用程序中使用的编程语言和最喜欢的测试框架。

  • 其次,你可以通过 Supabase CLI 进行测试,这是一种更底层的做法,你需要在 SQL 中编写测试。

使用 Supabase CLI 进行测试

你可以使用 Supabase CLI 来测试你的数据库。CLI 的最低所需版本是 v1.11.4。开始使用

创建测试#

supabase 文件夹内创建一个 tests 文件夹

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
begin;
2
select plan(1); -- only one statement to run
3
4
SELECT has_column(
5
'auth',
6
'users',
7
'id',
8
'id should exist'
9
);
10
11
select * from finish();
12
rollback;

运行测试#

要运行测试,你可以使用

1
supabase test db

这将产生以下输出

1
$ supabase test db
2
supabase/tests/database/hello_world.test.sql .. ok
3
All tests successful.
4
Files=1, Tests=1, 1 wallclock secs ( 0.01 usr 0.00 sys + 0.04 cusr 0.02 csys = 0.07 CPU)
5
Result: PASS

更多资源#