The assert module provides functions for verifying invariants and writing tests.
Basic Assertions#
Equality Assertions#
Strict vs Legacy Mode#
Error Assertions#
Async Assertions#
Pattern Matching#
Fail Assertions#
Testing Examples#
Custom Assertions#
AssertionError#
Validation Helpers#
Best Practices#
Choosing Assertions:
✓ Use strict mode always
✓ Use deepStrictEqual for objects
✓ Use strictEqual for primitives
✓ Use throws/rejects for errors
Messages:
✓ Provide descriptive messages
✓ Include actual values in messages
✓ Make failures easy to debug
✓ Use template literals
Testing:
✓ One assertion per behavior
✓ Test edge cases
✓ Test error conditions
✓ Use async assertions for promises
Avoid:
✗ Legacy loose equality
✗ Catching AssertionErrors silently
✗ Too many assertions per test
✗ Using assert for user input validation
Conclusion#
The Node.js assert module provides essential functions for testing and invariant checking. Always use strict mode (assert/strict) for reliable equality checks. Use throws and rejects for error testing, match for regex validation, and deepStrictEqual for object comparison. While assert is great for tests and development checks, consider proper validation libraries for user input validation in production code.