You do not write new tests here
- you are not introducing public classes
- it is likely if you feel the need, you need collaborators that fulfill a role
Philip--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
"And don't mock adaptors either. Mock your port to the adapter."
This is slightly how serialseb's article strikes me (one of your earlier links) when he recommends using (as I interpreted it) a faster adapter - why not ignore the adapter entirely?
I like the idea of snipping off a program at its ports and acceptance testing that - ignoring Bob Martin's "irrelevant appendices".
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
@Attila:
I realise that I used the word "mock" in my previous answer when I actually meant "boundary". A mock is only one type of boundary, and you can get into the same trouble whether you are using mocks or not. A test without mocks also interacts with the system through some kind of boundary, and if that boundary wants to change you have problems. So I agree with you that mocks do not make tests more fragile (nor do they make them more robust).Also, let me refine my previous answer. You can probably succeed even if your tests interact with boundaries not understood by the business, and you can probably end up with a mess even if your tests only interact with boundaries understood by the business. But I think finding good boundaries are vital for having robust tests, and the business side can help you discover such boundaries.
You say that object collaborations are brought into existence by design considerations. When does this happen? Is it something you decide when writing your test? Or is it something you discover through refactorings?
I'm wondering where would you put those boundaries in a hexagonal application (if its matter)? In the inner hexagon or are those related to the ports or adapters from the outer hexagon?
And how well the business should understand them?
You say that object collaborations are brought into existence by design considerations. When does this happen? Is it something you decide when writing your test? Or is it something you discover through refactorings?Mostly during writing tests, through the interface discovery. Sometimes through refactoring.
--
Certainly was for me. It's like the thing about learning to start with features rather than parts of the implementation.
It seems to me that the word "Behavior" is the word in question here.
I feel a bit like that too. Some examples is perhaps what I need.
Are those clusters more likely the product of refactoring, then?