测试你的数据库
为了确保查询返回预期的结果,RLS 策略得到正确应用等等,我们鼓励你编写自动化测试。本质上,有两种方法来进行测试
-
首先,你可以编写与 Supabase 客户端实例(就像你在应用程序代码中使用 Supabase 客户端一样)进行交互的测试,使用你在应用程序中使用的编程语言和最喜欢的测试框架。
-
其次,你可以通过 Supabase CLI 进行测试,这是一种更底层的做法,你需要在 SQL 中编写测试。
使用 Supabase CLI 进行测试
你可以使用 Supabase CLI 来测试你的数据库。CLI 的最低所需版本是 v1.11.4。开始使用
创建测试#
在 supabase 文件夹内创建一个 tests 文件夹
1mkdir -p ./supabase/tests/database创建一个以 .sql 扩展名的新文件,该文件将包含测试。
1touch ./supabase/tests/database/hello_world.test.sql编写测试#
所有 sql 文件都使用 pgTAP 作为测试运行器。
让我们编写一个简单的测试来检查我们的 auth.users 表是否具有 ID 列。打开 hello_world.test.sql 并添加以下代码
1begin;2select plan(1); -- only one statement to run34SELECT has_column(5 'auth',6 'users',7 'id',8 'id should exist'9);1011select * from finish();12rollback;运行测试#
要运行测试,你可以使用
1supabase test db这将产生以下输出
1$ supabase test db2supabase/tests/database/hello_world.test.sql .. ok3All tests successful.4Files=1, Tests=1, 1 wallclock secs ( 0.01 usr 0.00 sys + 0.04 cusr 0.02 csys = 0.07 CPU)5Result: PASS