### Testing in Hardhat v3 **Introduction** Hardhat is one of the most popular Ethereum development environments. With version 3, it introduces performance improvements and tighter integrations. Testing remains a core part of development, and Hardhat supports both JavaScript-based and Solidity-based testing. **1. JavaScript Testing (Mocha + Chai)** *Setup:* Install Hardhat and dependencies: ```bash npm install --save-dev hardhat npm install --save-dev @nomicfoundation/hardhat-toolbox ``` *Sample Test (test/MyContract.js):* ```javascript const { expect } = require("chai"); describe("MyContract", function () { it("Should deploy and return correct value", async function () { const Contract = await ethers.getContractFactory("MyContract"); const contract = await Contract.deploy(); await contract.deployed(); expect(await contract.getValue()).to.equal(0); }); }); ``` **2. Solidity Testing with Hardhat** Hardhat also supports writing tests directly in Solidity using `hardhat/console.sol` and `foege-std/Test.sol` for debugging. *Sample Solidity Test (contracts/MyTest.t.sol):* ```solidity pragma solidity ^0.8.19; import "forge-std/Test.sol"; import "../contract/Counter.sol"; contract CounterTest is Test { Counter counter; function setUp() public { counter = new Counter(); } function testIncrement() public { counter.increment(); assertEq(counter.count(), 1); } } ``` *4. Running Tests* ```bash npx hardhat test ``` **Conclusion** Hardhat v3 is still a solid choice with its JS and newly introduced Solidity Testing with provide flexibility.