I feel like #TDD it’s a moving target for me working in a legacy code base. I am constantly pleasantly surprised when my tests save my skin and I can refactor things with some confidence. But writing the tests and writing them well is so hard, when there is no underlying design in the project to follow 😅
What’s a good place to go from zero to hero with TDD in #dotnet projects? Any reasonably priced courses or tutorials to recommend?
I know I'm exposing my own shortcomings now, but no matter:
#TDD is fun! I can tear my #dotnet app apart and put it back together with total confidence that I'm not breaking stuff. 🤯😍
I've always found it brittle and a hindrance. I was missing a proper focus on testing behavior instead of structure, which flows naturally from a outside-in approach.
So while I don't think #TDD research studies prove anything, I think they can be useful to help me highlight benefits that might not be obvious from focusing on the TDD cycle itself.
"We found that Java TDD projects were relatively rare."
Yup. Especially in public GitHub repositories, because very little application development happens there (it's mostly tools and libraries). I point to my codebases as good examples because—while small—are real-world production apps.
"The quality-related performance of professionals using TDD drops more than for students. We hypothesize that this may be due to their being MORE RESISTANT to change and potentially LESS MOTIVATED than students."
And that's one of the most correct things I've seen in any paper. Resistant to change (and less motivated is the flip side of that coin) because "I'm an expert, and what I'm doing works for me" (completely valid)
The original requirement:
figure out how many columns the result of diffing two CSVs in #CsvDiff have.
Do you see the error-pattern?
It's
when we have no diff
&&
at least one CSV has headers
which makes sense, because I've implemented the feature in the diffing logic, but at that point header information is already lost (in some other thread).
Encouraged by people like @jasongorman, I'm giving #TDD a proper go during the scarce free time of my parental leave.
So far it's rubbing me all the wrong ways. The bottom-up approach runs very counter to my preferred way of thinking, where I sketch out the big picture and then fill out the details.
On the other hand, in the couple of hours it took me to recreate a part of a hobby project, it uncovered a design flaw that would have taken me an order of magnitude more hours to rectify later. 😍
We just shipped v2 Core Framework 2.5.2, Analyzers 1.4.0, and Visual Studio adapter 2.5.3. The focus of this release was resolving issues related to the new assertion library introduced in 2.5.0, as well as fixing any showstopping bugs.
We just shipped a new prerelease version of the Visual Studio adapter.
This release fixes a long-standing (but infrequent) bug with running .NET Framework tests via dotnet test on non-Windows OSes. If you've ever seen the error about a missing reference to Microsoft.TestPlatform.ObjectModel, this fix is for you.
I learned a lot about the little TDD mentoring I did from @emilybache and this is an excellent video where she explains how she approaches her technical coaching on TDD
The feeling when you bang your head against the wall for 3 hours and then just try something, but don't really believe in it and suddenly all your unit tests pass! 🎉 :awesome:
This is the beauty of #TestDrivenDevelopment - you can just try and guess until it works.😄 It's such a funny experience!
Well today's spur-of-the-moment live coding stream (working on "Ensembler") was successful: finished a feature much more smoothly than I expected. #TDD certainly helped.
In a r/SoftwareEngineering thread on "#UnitTesting is a generalized approach not an ideal solution for all systems" I touch on why #XP and #TDD haven't taken over.
My rebuttal boils down to this: Does the lack of XP among businesses really mean it's less effective? Or are there other reasons it hasn't spread?
> After 2 decades of doing TDD and BDD, I've realized that ignoring design and thinking that TDD will do a decent job at it for a trade-off for quicker/higher-quality development with the extra time was entirely a scam.
I react in two ways:
Yes, ignoring design seems risky and invites failure.
I don't know how to "do TDD and BDD" while ignoring design.
On the contrary, I do and teach #TDD as a mechanism for learning how to design "better".
We have just shipped a new build of the Visual Studio runner, to fix a showstopping issue related to reporters. If you've noticed that your build reports in TeamCity or Azure Pipelines are incomplete with 2.5.1, then this build is for you.
We just shipped v2 Core Framework 2.5.1, Analyzers 1.3.0, and Visual Studio adapter 2.5.1. The focus of this release was resolving issues related to the new assertion library introduced in 2.5.0, as well as fixing any showstopping bugs.
It is is the only universal JS/TS test framework that is fast, flexible, zero dependency, and can run your test files interchangably in Node.js, browser, or Deno environments!
ei! I forgot to announce it, next Tuesday I will be sharing a session about, yes, you have guessed, around #TDD with #Java 😉
It will be interesting to see how #India's 🇮🇳 developers receive the session.
Here you can register for free: http://bit.ly/3RbKX7N