Being able to observe the behavior of the program is key in testing. And we should make sure it is always easy to do it. In a few cases, though, the main challenge in making code observable is that the data structures we developed don't really allow us to do it. Let me give you an example.
Hello Mauricio, that sound like a good idea! I know that our code should be testable, but aren't we exposing implementation details of the system under test (SUT) here? Wouldn't a better approach be to make the final code composed of different components and test those components individually? And for the `run` method, test only the final result?
Hello Mauricio, that sound like a good idea! I know that our code should be testable, but aren't we exposing implementation details of the system under test (SUT) here? Wouldn't a better approach be to make the final code composed of different components and test those components individually? And for the `run` method, test only the final result?