News for hackers. Stuff that matters.
Re:A development process to ship features fast by osigurdson on Monday September 12, 2022 @11:09PM (#32820268)
A simple example of a bad test is one enforces an incorrect behaviour (i.e. 1 + 1 == 3). I can't see how a language could improve this situation. Is it possible it is the community as opposed to the language itself?
Re:A development process to ship features fast by Gigachad on Monday September 12, 2022 @11:38PM (#32820416)
I’m not sure how this really slows you down though. You see the app code is wrong, it breaks a test so you update the test to the new expected result.

The benefit is that the tests highlight what changed in the app. So when you update a library and 1+1 changes, it’s an alarm bell to investigate further because you didn’t expect this to happen.

Re:A development process to ship features fast by osigurdson on Tuesday September 13, 2022 @12:34AM (#32820672)
This is an example the test/hash antipattern. Here, the tests approach a hash of the source code. When some code changes, the hash no longer matches which fails the test. Great, this is letting us know that something as changed. After examining the changes and decide that they are correct, we update the hash and now the all the tests are green again. Our code base has 100% coverage.
Re:A development process to ship features fast by abracadabra_ on Tuesday September 13, 2022 @04:12AM (#32821779)
This is why tests should be seen as an executable specification rather than simply a series of checks.

Test_OnePlusOneEqualsTwo()

is not as useful as

Test_CanAddTwoNumbersTogether()

Test for behaviour, not implementation.