Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

2
  • 4
    Two remarks beyond Greg's observation that TDD implies a refactoring phase: (1) Robert C Martin has opinions, and many of them aren't that good. Clean code is a great marketing term, but Martin doesn't do a great job of explaining when good is good enough. By explaining concepts via teachable slogans, nuance is lost. (2) You can make a lot of aspects automatically checkable via linters and static analysis, for example variable naming schemes or a method's cyclomatic complexity. That's not a test in the TDD sense, but has equivalent developer experience. Commented Jul 27, 2024 at 13:47
  • When people talk about TDD most of the time they think about testing runtime behaviour. However it most certainly is possible to test the code design itself up to a certain level. That's what static analyzers do all the time. However to fully enforce things like clean design is simply not possible technically. Such static analysis is just too hard I think. For example: how can I write a test that checks that a class does only one thing? That's not even formally well defined. Commented Jul 27, 2024 at 16:11