Testing
Created at
||Updated at
Find here and here a list of best practices for testing.
Frameworks
Here are some popular frameworks and libraries to check out regarding various types of testing.
Unit
This is the simplest form of testing. Its purpose is to test individual “units” of software and validate each piece works as expected in isolation.
You can find a sample usage of all the below libraries in this repository. Each library is setup with Typescript and React, and configured to run some simple tests N times, to provide a pretty basic performance benchmark. A more thorough review will follow.
Intern is also an option, but I could not set it up with Typescript.
E2E
E2E (End To End) is a software testing method that validates the entire software along with its integration with external interfaces.
Benchmarking
Benchmark testing measures a repeatable set of quantifiable results that serves as a point of reference against which units/services can be compared.
Property based
As stated in the fast-check repo, “property based testing frameworks check the truthfulness of properties. A property is a statement like: for all (x, y, …) such that precondition(x, y, …) holds predicate(x, y, …) is true”.
Mutation
Bugs, or “mutants”, are automatically inserted into the code. The tests are run for each mutant. If the tests fail then the mutant is killed. The higher the percentage of mutants killed, the more effective the tests are.
Visual
HTTP
Frameworks and libraries to help you test Node.js HTTP servers.
Benchmarking
Utilities
Assertions
Mocking
Jest specific
- Jest Axe
- Jest Fetch Mock
- Jest Extended
- Jest Preview
- Jest Image Snapshot
- Jest Watch Typeahead
- Jest When
- Reassure
Fake data
Misc
- trace.cafe
- Hurl - Test HTTP requests with plain text
- Testing Playground - @testing-library playground
- Integresql - Isolated PostgreSQL databases for integration tests
- guidepup - Screen reader driver