Daniel Cazzulino's Blog
-
What's wrong with the Record/Reply/Verify model for mocking frameworks
Most mocking frameworks, and especially the two most popular ones, Rhino Mocks and TypeMock, use a record/reply/verify model where the developer invokes members on the mock during the record phase, does a replay to prepare the mock for those expectations, and finally do a verify before the test ends.
-
State Testing vs Interaction Testing
Highly recommended reading: Fowler's article Mocks aren't Stubs. It's a very clear characterization of the types of so-called Test Doubles (mocks, fakes, stubs, etc.) you can use to aid your unit testing needs, but also of the kinds of TDD you can do: classic (or state) TDD and mockist (or interaction) TDD.
-
Mocks, Stubs and Fakes: it's a continuum
Highly recommended reading: Fowler's article Mocks aren't Stubs.
-
Linq to Mock: MoQ is born
-
High-performing virtual machines with Diskeeper
One of the first things (if not THE first thing) I install on virtual machines (as well as the host) is Diskeeper. It really makes a noticeable difference on the performance of the VM, especially when compared to other VMs you use for quite some time without defrag'ing. VMs stress the hard drive a lot, so keeping it in good shape is a must for well performing VMs.
-
Fastest way to get a new GUID from within Visual Studio
-
Forget about writing Atom or RSS XML handling code ever again
A *very* welcome addition to .NET 3.5, which just went RTM for MSDN subscribers and trial for the rest before general availability early next year: System.ServiceModel.Syndication.
-
How to parse specific date-time formats using DateTime.ParseExact
-
Blogger: how to provide label/tag feeds
By default, blogger will only render links to the pages where you can read all entries with given labels:
-
Windows Live Writer RTM: a missed opportunity on extensibility
The Window Live suite final version was finally released. I've been following quite closely its evolution since Beta2, and have done a quite complicated (although not from the point of view of the end user) plugin which goes quite deep into WLW libraries (deeper than I dare to confess, if you know what I mean ;)).