If I were to write some unit tests for my stored procedures, is there any benefit to doing this with TSqlUnit vis-a-vis C# / Entity Framework4 / TransactionScope?
It seems to me you could create an EF4 context, import your SPROCS and tables, and do whatever setup you need to in C#, call you SPROC, confirm the results with some Asserts, and have everything rolled back when your TransactionScope hits the end of the using without having been committed. Reading that back, it seems like a lot, but I think the resulting code is a lot slimmer and more readable than the corresponding stored procedures I’d have to write to do the same thing in TSqlUnit.
Is TSqlUnit more for database developers that are just more comfortable in T-SQL than C#/Visual Studio?
There may be no real benefit for you if you’re using EF4 with Transactions and doing all of the development yourself.
TSqlUnit starts to add value when you’re using your T-SQL from multiple applications or you’re working for a large software shop where all database development is owned by a separate group (which means they will use TSqlUnit to test their code rather than relying on you to do it for them).