Skip to main content

Test Smart Contracts

In this section, you'll set up a smart contract test and test your contract using Mocha and Chai testing frameworks. See DApps Automation using Cucumber and Playwright.

Follow these steps below to test the smart contract.

Step 1: Install Dependencies​

We'll install the Mocha and Chai testing dependencies.

Mocha is a JavaScript test framework running on Node.js. Chai is an assertion library for the browser and Node that can be paired with any JavaScript testing framework.

  • Before writing tests for your token contract, ensure Mocha and Chai is installed. To install the required testing dependencies:
  npm install --save-dev mocha@10.2.0 chai@4.2.0 @nomiclabs/hardhat-ethers@2.2.3

Step 2: Create Tests​

  1. Navigate to the test directory in the root directory of your project, this is recommended for storing all test files:
  cd test
  1. In the test directory, open the MyToken.test.js file, we'll write tests for the token contract using Mocha and Chai:

Copy the code snippet below and paste it in your test file or see the MyToken.test.js file on GitHub.

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

describe("MyToken", function () {
it("Should deploy MyToken and assign the total supply to the owner", async function () {
const [owner] = await ethers.getSigners();

const MyToken = await ethers.getContractFactory("MyToken");
const myToken = await MyToken.deploy(1000);
await myToken.deployed();

expect((await myToken.totalSupply()).toString()).to.equal('1000');
expect((await myToken.balanceOf(owner.address)).toString()).to.equal('1000');
});
});

Step 3: Run the Tests​

To execute tests, run the following command in your project's root directory. This will run the written tests, confirming that the contract works as expected.

npx hardhat test

You should get a response like below: Test Success

By following these steps, you'll have the necessary testing frameworks installed and be well prepared to write effective tests for your smart contract.

Alternative Testing Approaches and Frameworks​

In addition to Mocha and Chai, you can use several other frameworks and approaches in your Hardhat project. Each has its unique features and benefits.

  • Jest - JavaScript Testing Framework
    • Jest is popular for its delightful syntax and focus on simplicity. It works well for testing both frontend and backend JavaScript applications.
  • Waffle - Ethereum Smart Contract Testing Library
    • Waffle is a library for writing and testing smart contracts. It is often used with ethers.js and is known for its fluent syntax.
  • Cucumber DApps Automation
Last updated on by Owanate Amachree