Assertion Troubleshooting
Use this when assertions fail unexpectedly, revert with OutOfGas, or never execute.
When to Use
- Tests show "Expected 1 assertion to be executed, but 0 were executed".
- Assertions revert with
OutOfGasor unknown reasons. - Call inputs appear empty or duplicate.
When NOT to Use
- You need invariant design. Use
designing-assertions. - You need implementation details. Use
implementing-assertions. - You need test strategy or fuzzing. Use
testing-assertions.
Quick Start
- Confirm trigger selector matches the target function.
- Ensure
cl.assertion()is immediately before the target call. - Check if the target call reverted before assertions ran.
- Verify cheatcodes are used in assertion functions, not constructors.
- Use
pcl test -vvvfor traces and gas diagnostics. - Confirm
FOUNDRY_PROFILE=assertionswhen runningpcl test.
Rationalizations to Reject
- "The assertion should have run." Verify triggers and call order first.
- "It is probably a test issue." Validate the target call succeeds without assertions.
- "Gas is fine." Happy path often consumes the most gas.
References
- Common Errors and Fixes