You can trust your test data right?
You can trust the architecture you're building against right?
You can trust the module right in front of yours right?

No! In fact, distrust it until proven trustworthy. Otherwise you'll spend the better part of your day hunting a bug in your code that doesn't exist. And we all know what looking for a black cat in a dark room that doesn't exist feels like.

As the antagonist in Under Siege 2 made perfectly clear: Assumptions are the mother of all fuckups.

Unit test until you're blue in the face and read your debug logs. Then you can kick back and enjoy what's left of your sanity.

You can trust your test data right?
You can trust the architecture you're building against right?
You can trust the module right in front of yours right?

I think the problem does not rest solely on assumptions, it is partially your attitude. Had you been more cynical, then you would assume your test data is shit, the architecture is buggy, and everything breaks before your module, then you would be in a much better position.

Cynicism: You're usually right, and it's awsome when you are wrong. =P