For the past several weeks, I've been exploring the possibility of automating tests for a large multi-tiered application. I've played around with several tools, including NUnit and TestComplete. Testing at the class level has been pretty straightforward, and once I got the hang of mocking/stubbing to compartmentalize the tests, the implementation was pretty trivial.

A bit more daunting, however, has been the task of trying to evaluate system-level function of the application. I had planned to run system tests out of NUnit as well, storing test classes in a seperate assembly. We are trying to stay away from GUI recording testing (a la TestComplete) - and with thin event handlers in the code, that shouldn't be a problem.

I am rather inexperienced with VB.Net (I am a long time java/php/perl type guy), and so I ask for advice: Is it possible to run acceptance/system tests as a higher level of unit tests? What are the pros/cons of testing in this way? Is it reasonable to test an application in this way at the level below the event-handlers?

Any literature/wisdom in this regard would be greatly appreciated.