How do I unit test controllers for an asp.net mvc site that uses StructureMap and NHibernate?
- by Jim Geurts
I have an asp.net mvc2 application that is using StructureMap 2.6 and NHibernate 3.x. I would like to add unit tests to the application but am sort of at a loss for how to accomplish it.
Say I have a basic controller called Posts that has an action called Index. The controller looks something like:
public class PostsController : Controller {
private readonly IPostService _postService;
public PostsController(IPostService postService) {
_postService = postService;
}
public ActionResult Index() {
return View(_postService.QueryOver<Post>().Future());
}
}
If I wanted to create an nunit test that would verify that the index action is returning all of the posts, how do I go about that? If mocking is recommended, do you just assume that interaction with the database will work?
Sorry for asking such a broad question, but my web searches haven't turned up anything decent for how to unit test asp.net mvc actions that use StructureMap (or any other IOC) and NHibernate.
btw, if you don't like that I return a QueryOver object from my post service, pretend it is an IQueryable object. I'm using it essentially in the same way.