29 lines
929 B
Markdown
29 lines
929 B
Markdown
---
|
|
name: testing
|
|
description: Testing guidelines. Use when Writing, Editing, or reviewing tests.
|
|
---
|
|
|
|
# Testing Guidelines
|
|
|
|
## Test Naming
|
|
|
|
- Test names should not include the word "test"
|
|
|
|
## Assertions
|
|
|
|
- Test assertions should be strict
|
|
- Bad: `expect(content).to.include('valid-content')`
|
|
- Better: `expect(content).to.equal({ key: 'valid-content' })`
|
|
- Best: `expect(content).to.deep.equal({ key: 'valid-content' })`
|
|
|
|
## Mocking
|
|
|
|
- Use mocking as a last resort
|
|
- Don't mock a database, if it's possible to use an in-memory fake implementation instead
|
|
- Don't mock a larger API if we can mock a smaller API that it delegates to
|
|
- Prefer frameworks that record/replay network traffic over mocking
|
|
- Don't mock our own code
|
|
- Don't overuse the word "mock"
|
|
- Mocking means replacing behavior, by replacing method or function bodies, using a mocking framework
|
|
- In other cases use the words "fake" or "example"
|