Broadly, there are three approaches to managing state for tests. • Test isolation: Organize tests so that each test’s data is only visible to that test. • Adaptive tests: Each test is designed to evaluate its data environment and adapt its behavior to suit the data it sees. • Test sequencing: Tests are designed to run in a known sequence, each depending, for inputs, on the outputs of its predecessors. In general, we strongly recommend the first of these approaches. Isolating tests from one another makes them more flexible as well as, importantly, capable of being run in parallel to optimize
...more

