So far in the previous posts, we wrote a few API tests for various HTTP methods and we were relying on the data that already existed on our test site. The challenge with that is if the existing data changes or gets removed it'll end up breaking our tests. Let's take a look at how we can fix that.
Current test structure
This is how the tests have been structured so far:
// GET Tests - uses existing userId to get the user data
// POST Test - creates a new user
// PUT Test - uses existing userId to update the user data
// DELETE Test - uses existing userId to delete the user data
So clearly with the DELETE
test, we cannot run it multiple times as we are using existing userId
and as a result, it would throw a 404
error.
Reorganize tests
So we can fix the above issue by simply reorganizing the way we have written our tests.
// POST Test - creates a new user and stores a new userId
// GET Test - get the new userId from the POST test
// PUT Test - get the new userId to update the user data
// DELETE Test - get the new userId to delete the user data
What we did here is moved our POST
test on the top to create a new user and then passed the userId
to the rest of the tests. This way despite how many times we run this test file it'll always work unlike the previous set of tests. 🙌
Now, I know there's a downside to this also as all the tests are dependent on the first test but I'd rather prefer this over using existing data that we can't control. 🤷♂️
Check out this video to see a detailed explanation on how I reorganized the tests:
You can also clone the GitHub repo to access this code
To learn more about API testing, check out my free tutorial series here -
I hope this post helped you out, let me know in the comments below!
Happy testing! 😄
...
Subscribe to my YouTube channel
Support my work - https://www.buymeacoffee.com/automationbro
Follow @automationbro on Twitter
Top comments (0)