Welcome to part two of our series on building a Windows application using test-driven development (TDD). In the previous article we drove the design of our entity classes and data access layer by means of unit tests. The unit tests acted more as specifications for the system rather than tests, since...
In a hot discussion thread in msforums.ph about the value of unit testing and adopting test-driven development (TDD), a suggestion was made to illustrate how TDD is used in creating a simple application, specifically Keith's October code challenge . In response to that, I've decided to write...
This InfoQ link on pipelined CI got my attention because it was something that I can relate to. The project we're working on used to build on our CruiseControl.NET build server in only three minutes; now it's taking more than 18 minutes to complete. And it's a dual-core 2 GB machine at that...
Have you heard of the term cyclomatic complexity ? I had my first encounter with it in the current project we're doing at work. One of the senior guys in our project set up our build server, with CruiseControl.NET invoking a tool called SourceMonitor and analyzing source code complexity. Basically...
Yesterday I had the privilege of speaking about Test Driven Development in front of PHP developers. I had a bit of trouble at first with the projector not playing nice with my cheapo notebook. Too bad that we didn't have much time to cover necessary ground. :( As promised, here are the links to the...
I made that observation, while doing PHP TDD-style, in my previous post . In this interview with Dave Astels and Steven Baker , they also note that TDD is a necessity in dynamic languages such as Ruby. Let me quote: It (the compiler, in statically-typed languages) is, it's testing that you are passing...
OK, so now it's time to "walk the talk." I'll be demo-ing here how to develop a user login facility test first -- how you can begin a test, then code your class to pass that test. Then we'll add one feature or behavior at a time until we completely fulfill the specifications or requirements. Hopefully...
If you've read my previous post s here, you'll notice that I advocate code testability and TDD. One of the key design concepts in achieving this is "inversion of control" or the dependency injection pattern . While I do mostly .NET stuff these days, I still dabble with PHP projects from time to time...