I've been spending some quality time with NHibernate 3.0. Last night I got stuck on an issue with the Criteria query where a collection passed to a constructor was null and the framework was complaining. After writing a couple of integration tests that tested various parts of my domain object model, I was able to determine that collection types that I was using for the many-side of relationships (ISet<T> and HashSet<T> in this case) where the inappropriate collection types to be using for my collection semantics configuration. I'm continually amazed at how powerful testing, both unit and integration, can be. My tests today allowed me to create a sandbox to try things and work out a misunderstanding that I had with NHibernate. Pretty cool.