part 3 of 4 learning hours on this theme.
In C, which of these allow you to substitute a different behaviour at:
☕ does not allow you to substitute behaviour
There are four symbols and four proposals. Pair them up.
In the exercise repo Grep with Marketing there is a branch ‘with_coverage’. The patient is in the surgery and fully covered with unit tests. We are ready to refactor it for testability. Explain that we need better seams so we can introduce stubs without using link-time substitution.
There are three stubs - it might be best to demo the first one. Introduce function pointers for each stub. This will also mean changes in the production code.
Go through the code listing for your final code. Write a comment // SEAM on any line of code you think is a seam. If you’re not finished with the refactoring, note there is a branch ‘with_abstractions’ which you can examine and annotate with SEAM comments.
Compare your answers with someone else and discuss any differences. Explain to the other person how you’d define a Seam.