uuid: - value: cfb22ecc-4401-41bf-8ed5-4a9321601a17 langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-05-11T09:00:01+00:00' revision_uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 revision_log: { } status: - value: true uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 title: - value: 'Good software is easy to test' created: - value: '2025-02-03T00:00:00+00:00' changed: - value: '2025-05-11T09:00:01+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2025/02/03/testable langcode: en body: - value: |
One piece of criteria for whether some software is good is whether it's easy to write automated tests for.
I recently worked on a method that was more than 150 lines.
It was difficult to understand, had too many responsibilities and didn't use dependency injection.
This made it difficult to test.
If it was split into several smaller methods or classes, each could be responsible for different aspects and have clear responsibilities.
Each new method or class could have its own tests to verify its own functionality works.
It would be easy to understand and identify and fix any issues.
If dependency injection was used, things can be mocked or changed as needed to make the logic testable.
If everything is in one large function, the code isn't testable.
Even if it works now, it will be difficult to change in the future.
format: full_html processed: |One piece of criteria for whether some software is good is whether it's easy to write automated tests for.
I recently worked on a method that was more than 150 lines.
It was difficult to understand, had too many responsibilities and didn't use dependency injection.
This made it difficult to test.
If it was split into several smaller methods or classes, each could be responsible for different aspects and have clear responsibilities.
Each new method or class could have its own tests to verify its own functionality works.
It would be easy to understand and identify and fix any issues.
If dependency injection was used, things can be mocked or changed as needed to make the logic testable.
If everything is in one large function, the code isn't testable.
Even if it works now, it will be difficult to change in the future.
summary: null field_daily_email_cta: { }