I got to collaborator tests (test roles) from pursuing a great software architecture.
I had always ignored frameworks like spock and the like but now I am blown away on how many things *click* with this when your architecture is well designed.
I can understand why this tests can tell you if your code is not well constructed and I find a little disappointing that advocates of collaborator tests aren't talking more about Object Oriented Arquitecture.
I invite you to hear from Jakub Nabrdalik he shares his implementation of
Hexagonal Architecure https://www.youtube.com/wat...
Behavior Driven Development https://www.youtube.com/wat...
Those two concepts should be discussed together more often (at least on OO languages)