-
Today when modifying what we call an “order notifier” (essentially observers that are notified when an order is placed), I was having trouble figuring out why my test was failing. The project is written in C# and this test was using Rhino Mocks to isolate the EmailService class. We obviously...
-
Some time ago, I noticed a CruiseControl.Net build report with thousands of unit tests passed, zero failed and a dozen or so skipped, suddenly showing that no tests were run: I immediately thought somebody did something really bad. After some digging, I found an error in the CCNET log file that indicated...
-
Lately I've been tracking some of the steps I go through in a given day or week. I was fixing a bug the other day when I decided that I should write down all the mental notes I refer to when addressing a problem like a bug in code. These are questions I didn't always ask in the past and I feel they are...
-
One of the biggest surprises when I started working with WatiN was the omission of a mechanism to check for error conditions. A partial solution using a subclass has been posted before, but it doesn't quite cover all the bases. Specifically, it's missing a mechanism to attach existing Internet Explorer...
-
Michael Feathers posted a thoughtful piece describing the general problems of UI testing tools and the industry in general . In general, I’d agree here. Automation tool vendors, as with almost every tool vendor out there, are eager to solve perceived software development problems. Unfortunately...
-
This content comes solely from my experience, study, and a lot of trial and error (mostly error). I make no claims stating that which works for me will work for you. As with all things, your mileage may vary, and you will need to apply all knowledge through the filter of your context in order to strain...
-
This content comes solely from my experience, study, and a lot of trial and error (mostly error). I make no claims stating that which works for me will work for you. As with all things, your mileage may vary, and you will need to apply all knowledge through the filter of your context in order to strain...
-
I suppose it's time for the obligatory weigh-in on the latest bit o' reckless software advice from Joel Spolsky on the merits of the "Duct Tape Programmer". I think being a duct tape programmer is a bit like being an alcoholic. Once you become one, you are one, and when you want to stop, you have to...
-
Early this week we ( Jeffrey Palermo and I ) gave a Continuous Integration Workshop in Austin. We were able to record the workshop and our company Headspring Systems made the recordings available on their website. There is just under 3 hours of video covering the following topics: reducing...
-
In my previous post, I talked about using the specification pattern for querying collections. I didn't actually show any code that does what I was talking about, I just showed the set-up and creation of specifications. The following is how you can put this into practice. Setting Up Some Tests These examples...
-
I am doing a Continuous Integration Workshop next Tuesday. The admission is free and will be held at the Microsoft Office. To register go here: http://www.headspringsystems.com/services/agile-training/continuous-integration/ This will cover the basics of what continuous integration...
-
There were some changes to the nCover xml reports for code coverage which will break your existing integration with cruise control .net . Specifically if you use the Statistics feature of Cruise Control which is one of the best features it provides IMHO, the xml nodes have changed and ncover no...
-
In my last blog post, someone asked me you can write unit tests for a private or protected method. I gave part of the response in a comment, but I need to give a more detailed description. Focus on the public API of your system First and foremost, I focus on testing the public API. You should...
-
I first want to thank JetBrains for being pretty awesome. I have complained a lot about how they are constantly chaining their APIs to Resharper and as a result it makes keeping plugins very hard to maintain but they went way out of their way to help. I received and email from one of their developers...
-
While I was testing out my VirtualPathProvider implementation in the Opinionated Input Builders series I ran across an interesting performance difference which was quite surprising. In fact even after looking at the source code to the MVC ViewEngineCollection it still seemed like this difference...