Giao diện RulesTestEnvironment

Đối tượng được dùng để kiểm soát môi trường kiểm thử đơn vị quy tắc. Có thể dùng để tạo RulesTestContext cho nhiều trường hợp xác thực.

Chữ ký:

export interface RulesTestEnvironment 

Thuộc tính

Tài sản Loại Nội dung mô tả
trình mô phỏng { cơ sở dữ liệu?: HostAndPort; Firestore?: HostAndPort; dung lượng lưu trữ?: HostAndPort; } Bản sao chỉ có thể đọc của cấu hình trình mô phỏng được chỉ định hoặc phát hiện khi tạo môi trường kiểm thử.
projectId string Mã dự án được chỉ định hoặc phát hiện trong quá trình tạo môi trường kiểm thử.

Phương thức

Phương thức Nội dung mô tả
authenticatedContext(user_id, tokenOptions) Tạo một RulesTestContext hoạt động giống như người dùng Xác thực Firebase đã xác thực.Các yêu cầu được tạo thông qua ngữ cảnh được trả về sẽ đính kèm mã thông báo Xác thực Firebase mô phỏng.
cleanup() Ở cuối mã kiểm thử, hãy gọi hàm dọn dẹp. Huỷ bỏ tất cả RulesTestContexts được tạo trong môi trường thử nghiệm và xoá các tài nguyên cơ bản, cho phép thoát hoàn toàn.Phương thức này không làm thay đổi trạng thái trong trình mô phỏng theo bất kỳ cách nào. Để đặt lại dữ liệu giữa các lần kiểm thử, hãy xem clearDatabase(), clearFirestore()clearStorage().
clearDatabase() Xoá tất cả dữ liệu trong không gian tên trình mô phỏng Cơ sở dữ liệu theo thời gian thực.
clearFirestore() Xoá dữ liệu trong Firestore thuộc projectId trong trình mô phỏng Firestore.
clearStorage() Xoá siêu dữ liệu và tệp Bộ nhớ trong tất cả bộ chứa của trình mô phỏng Bộ nhớ.
unauthenticatedContext() Tạo một RulesTestContext hoạt động giống như ứng dụng KHÔNG đăng nhập thông qua tính năng Xác thực Firebase.Các yêu cầu được tạo thông qua ngữ cảnh được trả về sẽ không đính kèm mã thông báo Xác thực Firebase.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

Bản sao chỉ có thể đọc của cấu hình trình mô phỏng được chỉ định hoặc phát hiện khi tạo môi trường kiểm thử.

Chữ ký:

readonly emulators: {
        database?: HostAndPort;
        firestore?: HostAndPort;
        storage?: HostAndPort;
    };

RulesTestEnvironment.projectId

Mã dự án được chỉ định hoặc phát hiện trong quá trình tạo môi trường kiểm thử.

Chữ ký:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

Tạo RulesTestContext hoạt động giống như người dùng Xác thực Firebase đã xác thực.

Các yêu cầu tạo thông qua ngữ cảnh được trả về sẽ có một mã thông báo Xác thực Firebase mô phỏng được đính kèm.

Chữ ký:

authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;

Tham số

Thông số Loại Nội dung mô tả
user_id string User ID của người dùng. Chỉ định giá trị "user_id" và "sub" trên mã thông báo
tokenOptions TokenOptions xác nhận hoặc ghi đè tùy chỉnh đối với tải trọng mã thông báo Xác thực Firebase

Trường hợp trả lại hàng:

RulesTestContext

Ví dụ:

const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });

RulesTestEnvironment.cleanup()

Ở cuối mã kiểm thử, hãy gọi hàm dọn dẹp. Huỷ bỏ tất cả RulesTestContexts được tạo trong môi trường kiểm thử và xoá các tài nguyên cơ bản, cho phép thoát hoàn toàn.

Phương thức này không làm thay đổi trạng thái trong trình mô phỏng theo bất kỳ cách nào. Để đặt lại dữ liệu giữa các lần kiểm thử, hãy xem clearDatabase(), clearFirestore()clearStorage().

Chữ ký:

cleanup(): Promise<void>;

Trường hợp trả lại hàng:

Promise<void>

RulesTestEnvironment.clearDatabase()

Xoá tất cả dữ liệu trong không gian tên trình mô phỏng Cơ sở dữ liệu theo thời gian thực.

Chữ ký:

clearDatabase(): Promise<void>;

Trường hợp trả lại hàng:

Promise<void>

RulesTestEnvironment.clearFirestore()

Xoá dữ liệu trong cơ sở dữ liệu mặc định trên Firestore cho projectId trong trình mô phỏng Firestore.

Chữ ký:

clearFirestore(): Promise<void>;

Trường hợp trả lại hàng:

Promise<void>

RulesTestEnvironment.clearStorage()

Xoá các tệp Bộ nhớ và siêu dữ liệu trong bộ chứa đang hoạt động trong trình mô phỏng Bộ nhớ.

Chữ ký:

clearStorage(): Promise<void>;

Trường hợp trả lại hàng:

Promise<void>

RulesTestEnvironment.unauthenticatedContext()

Tạo một RulesTestContext hoạt động như ứng dụng KHÔNG đăng nhập thông qua tính năng Xác thực Firebase.

Yêu cầu được tạo thông qua ngữ cảnh được trả về sẽ không đính kèm mã thông báo Xác thực Firebase.

Chữ ký:

unauthenticatedContext(): RulesTestContext;

Trường hợp trả lại hàng:

RulesTestContext

Ví dụ:

const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });

RulesTestEnvironment.withSecurityRulesDisabled()

Chữ ký:

withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;

Tham số

Thông số Loại Nội dung mô tả
số gọi lại (ngữ cảnh: RulesTestContext) => Promise<void>

Trường hợp trả lại hàng:

Promise<void>