تست قراردادهای هوشمند سالیدیتی یکی از مراحل مهم توسعه است، زیرا به شما این امکان را می‌دهد که اطمینان حاصل کنید قرارداد شما به درستی عمل می‌کند. در این راهنما، ما به شما نحوه تست قرارداد سالیدیتی با chai و mocha را آموزش می‌دهیم.

۱. مقدمات

نصب ابزارهای مورد نیاز

ابتدا، شما نیاز به نصب Node.js و npm (مدیر بسته‌های Node.js) دارید. پس از آن، پروژه خود را ایجاد کرده و dependencies لازم را نصب کنید:

mkdir my-project
cd my-project
npm init -y
npm install --save-dev mocha chai @nomiclabs/hardhat

۲. تنظیم Hardhat

Hardhat یک محیط توسعه برای قراردادهای هوشمند است. با استفاده از دستورات زیر Hardhat را راه‌اندازی کنید:

npx hardhat

سپس گزینه “Create a sample project” را انتخاب کنید و دستورالعمل‌ها را دنبال کنید.

آموزش جامع سالیدیتی + 5 پروژه عملی

۳. نوشتن قرارداد هوشمند

به یک فایل جدید در contracts (به عنوان مثال MyContract.sol) بروید و قرارداد خود را بنویسید. در اینجا یک مثال ساده داریم:

// SPDX-License-Identifier: MIT
pragma solidity ^.8.;

contract MyContract {
    uint256 private value;

    function setValue(uint256 _value) public {
        value = _value;
    }

    function getValue() public view returns (uint256) {
        return value;
    }
}

۴. نوشتن تست‌ها

حالا به پوشه test بروید و یک فایل جدید در آن ایجاد کنید. به عنوان مثال، test/MyContract.js را بسازید و کد زیر را اضافه کنید:

const { expect } = require("chai");

describe("MyContract", function () {
    let MyContract;
    let myContract;
  
    beforeEach(async function () {
        MyContract = await ethers.getContractFactory("MyContract");
        myContract = await MyContract.deploy();
        await myContract.deployed();
    });

    it("should set and get value correctly", async function () {
        await myContract.setValue(42);
        expect(await myContract.getValue()).to.equal(42);
    });
});

۵. اجرای تست‌ها

برای اجرای تست‌ها، از دستورات زیر استفاده کنید:

npx hardhat test

اگر همه چیز به درستی نصب و پیکربندی شده باشد، باید نتیجه تست‌های خود را مشاهده کنید.

۶. نکات اضافی

  • تست‌های بیشتر: می‌توانید تست‌های بیشتری برای بررسی شرایط مختلف، خطاها و موارد حاشیه‌ای بنویسید تا اطمینان حاصل کنید که قرارداد شما به درستی عمل می‌کند.

  • تست‌های شبکه‌های مختلف: می‌توانید از شبکه‌های تستی مانند Rinkeby یا Kovan استفاده کنید تا تست‌های خود را در شرایط واقعی‌تر انجام دهید.

نتیجه‌ گیری

با تست قرارداد سالیدیتی با chai و mocha، شما می‌توانید به سادگی و به طور موثری قراردادهای هوشمند خود را تست کنید. اطمینان از صحیح بودن کد قرارداد شما باعث می‌شود که قبل از استقرار در شبکه اصلی، مشکلات احتمالی را شناسایی و برطرف کنید. با رعایت این مراحل، می‌توانید تست‌های معتبری برای قراردادهای سالیدیتی خود بنویسید.