Bước 4: Kiểm thử ứng dụng Web3 – NEAR Certificated Developer

To Share and +4 nLEARNs

Trong quá trình phát triển smart contract, bạn sẽ muốn kiểm tra xem các chức năng có hoạt động đúng như mong đợi hay không và hơn thế nữa, contract có hoạt động một cách an toàn hay không. NEAR đã phát triển các công cụ để kiểm thử đáp ứng những nhu cầu trên cho bạn.

Về cơ bản, sẽ có hai loại kiểm thử bạn có thể thực hiện:

  • Unit Tests để test các tính năng riêng lẻ, được viết bằng chính ngôn ngữ lập trình của smart contract và thực thi tại local.
  • Integration Tests để kiểm tra cách smart contract của bạn hoạt động trong môi trường thực tế. Bạn có thể viết integration tests với Rust hoặc Javascript (Typescript). Integrations test thường sẽ thực hiện trong Sandbox hoặc mạng NEAR testnet.

Để chắc chắn smart contract có thể hoạt động tốt trong môi trường thực tế, LNC khuyên bạn nên thực hiện cả hai loại tests. Mỗi loại đều phù hợp để phát hiện ra các loại lỗi khác nhau trong quá trình smart contract hoạt động.

Kiểm thử smart contract

Quay trở lại với counter smart contract mà LNC đã hướng dẫn bạn xây dựng trong phần trước. Trong bài này, LNC sẽ hướng dẫn bạn cách viết tests cho chính contract này. Chúng ta cùng bắt đầu nhé.

Bước 1: Review cấu hình và setup ban đầu cho việc kiểm thử

Bạn truy cập file /integration-tests/src/main.ava.ts

Ở đây, LNC đã cấu hình sẵn cho việc kiểm thử. Chúng ta cùng duyệt qua một vài thông tin chính:

  • test khai báo một test module với Worker sandbox và lưu trữ 1 danh sách accounts sẽ thực hiện cho việc test trong context.
  • Chúng ta sẽ có test.berforeEach() thực hiện trước khi bắt đầu test và test.afterEach() thực hiện sau khi test.
  • Bạn sẽ cần chú ý nhiều hơn đến test.beforeEach(). Ở đây, LNC khai báo init Worker, tạo sub account từ root và deploy contract lên account này. Việc thực hiện sẽ giống như trong môi trường testnet, mainnet, vì vậy bạn có thể biết chính xác smart contract của mình hoạt động như nào trên thực tế.

Bước 2: Viết test các chức năng

  1. Lấy giá trị ban đầu của number

Contract đánh dấu get_numberview function, vì vậy ở đây chúng ta gọi view từ contract.

  1. Tăng và giảm giá trị của number

Với increase_number, decrease_number, bạn cần thực hiện dùng một account để call đến contract.

  1. Test người dùng deposit NEAR vào contract

  1. Test private function

Do private function chỉ cho phép chính tài khoản lưu contract gọi. Vì vậy ở đây chúng ta thay đổi từ root sang contract.

Toàn bộ souce code cho phần tests bạn có thể kiểm tra [ ở đây ]

Bước 3. Thực hiện kiểm thử

Thực hiện test với câu lệnh

$ npm run build:contract && npm run test

Và kết quả:

Hoạt động bổ sung

Để hiểu rõ hơn về tests bạn có thể thực hiện thêm các yêu cầu sau:

  • Viết thêm tests với các trường hợp xảy ra lỗi trong contract
  • Đọc hiểu thêm về module tests trong các contract đã đọc ở bài 2 của NEAR Certificated Developer level 1
  • Viết thêm unit tests, integration tests cho các contract bạn đã đọc trong bài 2 của NEAR Certificated Developer level 1
  • Viết tests bằng Rust theo hướng dẫn [ Tại đây ]

Tài nguyên

Generate comment with AI 2 nL
Scroll to Top