{
  "accessed": "2026-07-22",
  "sources": [
    {
      "name": "Michael Feathers on risky change",
      "url": "https://www.informit.com/articles/article.aspx?p=359418&seqNum=2",
      "sha256": null,
      "required_text": [
        "How will we know that we've done them correctly?",
        "How will we know that we haven't broken anything?"
      ]
    },
    {
      "name": "Michael Feathers on seams",
      "url": "https://www.informit.com/articles/article.aspx?p=359417&seqNum=2",
      "sha256": null,
      "required_text": [
        "A seam is a place where you can alter behavior in your program without editing in that place."
      ]
    },
    {
      "name": "PHPUnit 12.5 test doubles",
      "url": "https://docs.phpunit.de/en/12.5/test-doubles.html",
      "sha256": "5b031278c3160b70d5a896b7666e5683ed0bdd97511c9a598a890ff9381ccd3a",
      "required_text": [
        "Tests that rely on strict call ordering are often brittle",
        "Test the final state or output rather than intermediate calls"
      ]
    },
    {
      "name": "Laravel 13 testing",
      "url": "https://laravel.com/docs/13.x/testing",
      "sha256": null,
      "required_text": [
        "Unit tests are tests that focus on a very small, isolated portion of your code.",
        "Feature tests may test a larger portion of your code"
      ]
    }
  ]
}
