Foundry Asserts
Foundry asserts statements are assertEq, assertLt, assertLe, assertGt, assertGe, assertEqDecimal and assertTrue.
Solidity, a programming language tailored for developing smart contracts on blockchain platforms like Ethereum, has become integral to the burgeoning field of decentralized applications (dApps). A critical aspect of Solidity development is testing, ensuring that smart contracts function as intended in a secure, efficient manner. Foundry, a robust development toolkit for Ethereum, stands out in this landscape. It includes Foundry Asserts, a suite of testing tools designed to streamline and enhance the testing process for Solidity contracts. By employing Foundry Asserts, developers can write comprehensive, reliable tests, which are crucial for verifying contract logic, handling edge cases, and maintaining the integrity and security of decentralized applications.
DSTest
We import assert from DSTest
Dappsys Test (DSTest for short) provides basic logging and assertion functionality. It is included in the Forge Standard Library.
To get access to the functions, import forge-std/Test.sol
and inherit from Test
in your test contract:
import “forge-std/Test.sol”;
contract AccessModifiers is Test {
// … tests …
}
Tools
- assertEq, assert equal
(Where <type>
can be address
, bytes32
, int
, uint)
- assertLt, assert less than
(Where <type>
can be int
, uint)
- assertLe, assert less than or equal to
(Where <type>
can be int
, uint)
- assertGt, assert greater than
(Where <type>
can be int
, uint)
- assertGe, assert greater than or equal to
(Where <type>
can be int
, uint)
- assertEqDecimal, assert equal decimals
(Where <type>
can be int
, uint)
- assertTrue, assert to be true
(Asserts the condition
is true.)
Code:
Test
forge test -vvvv
Source: DSTest Reference