this post was submitted on 20 Nov 2024
240 points (98.4% liked)

Programmer Humor

32715 readers
609 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 3 points 1 month ago (1 children)

Tests first is only good in theory.

Unit tests typically test rather fine grained, but coming up with the structure of the grain is 80% of the work. Often enough you end up with code that's structured differently than initially thought, because it turns out that this one class needs to be wrapped, and this annotation doesn't play nice with the other one when used on the same class, etc etc.

[–] [email protected] 1 points 1 month ago* (last edited 1 month ago) (1 children)

Can't you just add the wrapper to the test as well, if it's easy to do in the actual code?

[–] [email protected] 1 points 1 month ago (1 children)

If you have to ask "can't you just" the answer is almost always no.

[–] [email protected] 1 points 1 month ago (1 children)

Well, yeah, but I was kind of hoping you'd explain why.

[–] [email protected] 1 points 1 month ago (1 children)

Because you don't know what you'll need that wrapper beforehand, that's my entire point.

Unless you're only doing trivial changes, the chances are very high that you won't be able to design the class structure. Or, you end up essentially writing the code to be able to write the tests, which kind of defeats the purpose.

[–] [email protected] 1 points 1 month ago

That's kind of the whole philosophy, though. The tests are the main way you understand what you're doing, the working code is just an addition on top of that. Presumably, there's a way to do that without repeating yourself - although I'm not turning up much on a quick look.