Behavior Driven Design
I ran across a good introductory video on BDD
here; think of Behavior Driven Development as a refined version of
TDD.
NSpec needs some work with respect to the semantics of the API. Specifically, the term
Must should be introduced into API;
Should is not behaviorally strong enough for the specification (see
Sapir–Whorf). I do hope the tool set matures to include a GUI similar to that of
NUnit.
I do agree reflection
SHOULD not be used to test private members. That said, I seldom find a need to test private method directly via reflection and do so strictly as a last resort. The
InternalsVisibleTo is an extremely useful attribute in the context of testing. Microsoft should create a
PrivatesVisibleTo attribute.
Anyway, enjoy.