The first question you need to ask yourself is, “What am I trying to test?” This broad question includes the need to answer several more detailed questions, such as the following.
• Which use cases am I trying to verify?
• Are you trying to test the full stack, an integrated subset, or a unit?
• What technologies are you trying to verify?
• What architectural layers are you trying to verify?
• Are you testing new code, clean, well-written code, or are you rescuing a legacy hair ball?
• Can you decompose the testing problem into usefully smaller, more tractable pieces?
A full stack test gives you the ultimate verification of the fully integrated system, but at a cost. Full stack tests often run slowly due to the presence ...