Expect
The Expect module introduces the expect function, designed to validate if specified conditions are satisfied.
Depending on the type of the input parameter, the expect function offers a range of matchers tailored to the
context. For instance, with a string like "Hello World", you can use .toContain("Hello"), or for numbers,
expect(1).toBeGreaterThan(0) can be applied. This adaptability ensures precise and concise condition
checking across various data types.
Examples
Use different matchers
Using the expect function and its different matchers
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import {Test, accounts, expect} from "vulcan/test.sol";
contract ExpectExample is Test {
function test() external {
expect(string("foo")).toEqual("foo");
expect(string("foo")).not.toEqual("bar");
expect(string("foo bar")).toContain("foo");
expect(string("foo bar")).toContain("bar");
expect(uint256(1)).toEqual(1);
expect(uint256(1)).not.toEqual(0);
expect(uint256(1)).toBeGreaterThan(0);
expect(uint256(1)).toBeGreaterThanOrEqual(1);
expect(uint256(0)).toBeLessThan(1);
expect(uint256(0)).toBeLessThanOrEqual(0);
address alice = accounts.create("Alice");
address bob = accounts.create("Bob");
expect(alice).toEqual(alice);
expect(alice).not.toEqual(bob);
expect(true).toBeTrue();
expect(false).toBeFalse();
expect((10 % 5) == 0).toBeTrue();
expect((10 % 6) == 4).toBeTrue();
}
}