I'm working on a new blog article on test category definitions and the confusion about them. I was wondering what you think of the following sentence:
"I believe that some contract tests can (and often should) be integrated tests – for example focused tests
that touch a database to verify low-level data model logic (which goes beyond just checking that the database is integrated)."
My thinking is that if in collaboration tests at the service level you mock out the call to the interface that does CRUD for your domain entities, then for the corresponding contract tests it's good to test the concrete implementation of that interface in a way that verifies that the CRUD really works as expected for all the entities concerned, with a real database (so each test is "integrated" because it tests 2 interesting parts of the system at the same time: 1 method under test and the database). Have I interpreted your terminology correctly?