• neomachino@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    4
    arrow-down
    2
    ·
    9 hours ago

    My job used to outsource a bunch of dev work to another company and oh boy did those people love their tests. I don’t get it. In my case they weren’t even using our actual database to pull data from. They had a bunch of fixture files with generic data that they would use to make a temporary sqlite db for the tests. All of the test ran perfectly with that data, not so much with the actual data. The code is there, can’t you just read it and know what will happen?

    When I write something I’m never not building it and at least checking that it works and trying to break it.

    • Mirror Giraffe@piefed.social
      link
      fedilink
      English
      arrow-up
      4
      ·
      6 hours ago

      Imo each test tests a specific functionality which requires a fixture set up for that. Its important that these figures mirror exactly how it would look in production or the tests are pointless.

      For example customer A uses product A in a specific way it’s important that we enter customerA.settings and productA.props into the test and only test the specifics in said transaction.

    • boblin@sh.itjust.works
      link
      fedilink
      arrow-up
      3
      ·
      9 hours ago

      There are certainly different kinds of developers writing different types of tests. I usually only write the tests first if I‘m adding a critical functionality to some method or function already present. However having automated tests can help you when you can‘t easily understand the code or when you want to refactor that code to make sure you‘re not breaking existing functionality.

      What you‘re describing with external devs often happens when these devs can‘t access the real data - plus you often want these tests to be automated, which usually brings with it the requirement of atomicity, i.e. you want one test run running in parallel with another not effecting each other. That usually doesn‘t work well with a real database (unless you really take your test engineering to the overengineered tier).