Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The growing duration of the tests is the primary concern. Eventually it will grow to a point where you'll have to abandon some of the tests. That's a slippery slope.</p> <p>To forestall that, I would certainly adopt 1+2 strategy, but I would also maintain a certain amount of end-to-end testing. </p> <p>As you add more and more tests that bypass the UI and DB, you can start deciding which end-to-end tests are redundant, and which are necessary in order to test that the system is connected properly.</p> <p>The goal, in the end, if for end-to-end tests to be purely plumbing tests, with all business rules and presentation behaviors tested using the 1+2 strategy.</p> <p>Your stored procedures are a complication. So long as you aren't more features to the database code, you can probably manage it. In fact, if you can gradually replace some of that database code with server code you'll be better off. Some of the database code can be tested without the rest of the system present. And some of the database behavior can be mocked. Unfortunately there are also probably behaviors that can only be tested end-to-end, and so you'll likely have to keep those tests in place for as long as that legacy database code exists.</p> <p>The most important factor here is to take things slowly, and avoid backsliding. Don't embark upon a huge project to "fix the tests". Make gradual incremental improvements instead. Practice "The Boy Scout Rule", always leave the tests better than you found them. Never make them worse. Bit by bit, move more and more tests into strategy 1+2. Bit by bit replace those stored procedures that you feel comfortable replacing. Gradually eliminate the most redundant end-to-end tests.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload