Giao diện RulesTestEnvironment

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

Chữ ký:

export interface RulesTestEnvironment 

Thuộc tính

Tài sản Loại Mô tả
trình mô phỏng { cơ sở dữ liệu?: HostAndPort; kho cứu hoả?: HostAndPort; bộ nhớ?: HostAndPort; } Bản sao chỉ đọ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 chuỗi Mã dự án được chỉ định hoặc phát hiện khi tạo môi trường thử nghiệm.

Phương thức

Phương thức Mô tả
authenticationdContext(user_id, tokenOptions) Tạo một RulesTestContext hoạt động như người dùng tính nă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 trả về sẽ đính kèm mã thông báo xác thực Firebase mô phỏng.
cleanup() Vào 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à dọn dẹp các tài nguyên cơ bản, cho phép thoát sạch.Phương pháp này không 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 của 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 về projectId trong trình mô phỏng Firestore.
clearStorage() Xoá siêu dữ liệu và tệp Bộ nhớ trong tất cả các bộ chứa trong Trình mô phỏng bộ nhớ.
unauthenticationdContext() Tạo một RulesTestContext hoạt động như ứng dụng khách 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(gọi lại)

RulesTestEnvironment.emulators

Bản sao chỉ đọ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 khi tạo môi trường thử nghiệm.

Chữ ký:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

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

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

Chữ ký:

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

Thông số

Thông số Loại Mô tả
user_id chuỗi User ID của người dùng. Chỉ định giá trị của "user_id" và "sub" trên mã thông báo
tokenOptions TokenOptions (Tuỳ chọn mã thông báo) xác nhận quyền sở hữu hoặc ghi đè tuỳ chỉnh cho 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()

Vào 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à dọn dẹp các tài nguyên cơ bản, cho phép thoát sạch.

Phương thức này không 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:

Lời hứa<vô hiệu>

Quy tắc kiểm thử môi trường.clearDatabase()

Xoá tất cả dữ liệu trong không gian tên của 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:

Lời hứa<vô hiệu>

RulesTestEnvironment.clearFirestore()

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

Chữ ký:

clearFirestore(): Promise<void>;

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

Lời hứa<vô hiệu>

RulesTestEnvironment.clearStorage()

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

Chữ ký:

clearStorage(): Promise<void>;

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

Lời hứa<vô hiệu>

RulesTestEnvironment.unauthenticatedContext()

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

Những 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>;

Thông số

Thông số Loại Mô tả
số gọi lại (bối cảnh: RulesTestContext) => Lời hứa<vô hiệu>

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

Lời hứa<vô hiệu>