There was a brief discussion on the JMock mailing list recently where we helped out a new user. In the process, we noticed that he was mocking Java
Set, which we tend to avoid, because it's not a type that we own—it's not in the domain of the problem we're trying to solve. The way I put it was,
We see a lot of people using, for example,
List<House>when what they actually mean is
Street. We try to use types we own that represent concepts in the domain, rather than built-in or library types which we keep for implementing these domain types. If the domain types are defined in terms of roles, then they're often appropriate for mocking.
Isiah followed up with an old post of his own.
I think we have a satisfied customer:
Thank you Steve and Isiah, I think I just took a large step in the world of TDD.
It's nice when that happens...