What if we need a test to clean up a newly created data after its execution (no matter it failed or succeeded)?
You can’t make test to clean itself, because it can fail at some point without cleanup. So we can prepare a function for After method
let cleanup;
Scenario('Create an item', async I => {
// do some actions to create an item on page
await I.click('Create'); // at this point an item is created so we need to prepare cleanup
cleanup = () => {
I.say('Cleaning up');
// perfrom actions to clean up created item
}
// continue test
})
After(() => {
if (cleanup) {
cleanup(); // execute cleanup
cleanup = null; // disable cleanup for next tests
}
});
Could a solution using CodeceptJS be used for a whole test suite rather than after an individual test ie I run all my tests and then commence cleanup or is that wondering into different territory?
I work on this idea a lot and spend huge time. the best case is to delete data before all test and after all test with bootstrap and teardown. hat way you test start and ends with know state.