تست و دیباگ قراردادهای هوشمند با استفاده از ابزارهایی مانند Foundry و Hardhat اهمیت زیادی در بهبود کیفیت و کاهش خطاهای قراردادها دارد. در ادامه، به بررسی روشهای مختلف برای تست قراردادهای هوشمند با Foundry و Hardhat میپردازیم.
سرفصل های مقاله
۱. تست با Hardhat
۱.۱. نصب Hardhat
برای شروع با Hardhat، ابتدا آن را نصب کنید:
npm install --save-dev hardhat
۱.۲. ایجاد پروژه Hardhat
با استفاده از دستور زیر یک پروژه Hardhat جدید ایجاد کنید:
npx hardhat
۱.۳. نوشتن تستها
شما میتوانید تستهای خود را در پوشه test اضافه کنید. برای نوشتن تستها از Mocha و Chai استفاده میشود. برای یک قرارداد ساده، مثلاً ERC20:
const { expect } = require("chai");
describe("MyToken", function () {
it("should have the correct name and symbol", async function () {
const MyToken = await ethers.getContractFactory("MyToken");
const token = await MyToken.deploy();
expect(await token.name()).to.equal("MyToken");
expect(await token.symbol()).to.equal("MTK");
});
});
۱.۴. اجرای تستها
برای اجرای تستها، از دستور زیر استفاده کنید:
npx hardhat test
آموزش سالیدیتی + 5 پروژه عملی
۲. دیباگ با Hardhat
۲.۱. استفاده از Hardhat Network
میتوانید از Hardhat Network برای دیباگ قراردادهای خود استفاده کنید. با استفاده از دستورات زیر، شبکه محلی را راهاندازی کنید:
npx hardhat node
۲.۲. استفاده از Hardhat Console
از Hardhat Console برای تعامل با قراردادها استفاده کنید:
npx hardhat console
۳. تست با Foundry
۳.۱. نصب Foundry
برای نصب Foundry، ابتدا باید foundryup را نصب کنید:
curl -L https://foundry.paradigm.xyz | bash
۳.۲. ایجاد پروژه Foundry
با استفاده از دستور زیر یک پروژه Foundry جدید بسازید:
forge init
۳.۳. نوشتن تستها
تستهای خود را در پوشه test اضافه کنید. مثلاً برای تست یک قرارداد ERC20:
pragma solidity ^.8.;
import "forge-std/Test.sol";
import "../src/MyToken.sol";
contract MyTokenTest is Test {
MyToken token;
function setUp() public {
token = new MyToken();
}
function testName() public {
assertEq(token.name(), "MyToken");
}
}
۳.۴. اجرای تستها
برای اجرای تستها در Foundry، از دستور زیر استفاده کنید:
forge test
۴. دیباگ با Foundry
۴.۱. استفاده از Forge
میتوانید با استفاده از ویژگیهای دیباگ Forge، قراردادها را دیباگ کنید. برای اجرای دیباگ، از forge test -vvvv استفاده کنید که جزئیات بیشتری را در مورد تستها ارائه میدهد:
forge test -vvvv
۴.۲. استفاده از Remix
برای دیباگ قراردادها، میتوانید از Remix IDE نیز استفاده کنید که ابزارهای قوی برای تست و دیباگ قراردادهای هوشمند ارائه میدهد.
نتیجه گیری
با تست قراردادهای هوشمند با Foundry و Hardhat، شما قادر خواهید بود تا بهراحتی قراردادهای هوشمند خود را تست و دیباگ کنید. هرکدام از این ابزارها ویژگیهای خاص و قابلیتهای منحصر به فرد خود را دارند که انتخاب بین آنها به نیازها و ترجیحات شما بستگی دارد.