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.