The tests I like to write are usually of the form:
Assume we are testing software that posts and adjusts trades
Take a fresh copy of the database and populate it with pre-frozen data as needed (say, a trade)
Take test case data (trade change message)
Pass that data to your software (whole software, so this is closer to integration test than unit test). In this case, let the software accept the trade change message and hopefully amend the trade in the database.
- The software is configured to point to your fresh copy of database
Check the database, verify that the resulting data is 100% matching your "expected data" for test case.
This seems to be different from integration testing for me, because we are mocking/isolating the environment completely (fresh database, custom network port number etc...), so in a way conceptually it seems closer to a mocked unit test, except at integration test scale.
Is there a formal QA term for this kind of test?