<<It's a lot easier to create an in-memory list of customers to query against than setup records in the db.>> Why? Maybe I'm missing something but... inMemList.Add() vs repository.Add() is pretty similar?
________________________________ Från: [email protected] [[email protected]] för Troy Tuttle [[email protected]] Skickat: den 15 januari 2009 22:29 Till: [email protected] Ämne: [nhusers] Re: Testing NHibernate, Mocking ISession That's what we are currently doing now, but as the domain model grows, the integration tests can get huge when testing queries with multiple criteria (like a search screen). I'm finding most of the work is in getting the database in the correct state for these kinds of respository/integration testing. So, my thought is, just test the integration by using PersistenceSpecification.VerifyTheMappings(), and test the queries in isolation (mocked). It's a lot easier to create an in-memory list of customers to query against than setup records in the db. Thanks for the feedback though. tt On Thu, Jan 15, 2009 at 2:47 PM, isaiah perumalla <[email protected]<mailto:[email protected]>> wrote: In my experience, i found it useful to simply write integration-tests to test the repositories. I generally avoid mocking 3rd party type such as ISession since the interaction tests will most like be quite fragile On Jan 15, 1:22 pm, "John Teague" <[email protected]<mailto:[email protected]>> wrote: > Are you testing business logic that is using your repository, or are you > testing the repository itself? > > On Thu, Jan 15, 2009 at 1:23 PM, Troy T. > <[email protected]<mailto:[email protected]>> wrote: > > > Hi, > > I'm using Linq to NH in a project, and would like to test my > > repository code without hitting the database. I have code in my > > repository as: > > > public class Repository : IRepository > > { > > (... code snipped for brevity ...) > > > public T FindBy<T>(Expression<Func<T, bool>> where) > > { > > return _session.Linq<T>().Where(where).FirstOrDefault(); > > } > > > } > > > Where _session is injected into the repository class as ISession. > > Does anyone have some ideas on how to test this repository query code > > without hitting the database? I'm using Rhinomocks for mocking. > > > My idea is to create a List<T> of Customer objects in the unit test > > code (my test data), and mock out ISession and have it return that > > test data when .Linq<T> is called on the session. To do that I've > > started creating my own test stub that implements IQueryable that > > would be responsible for returning the test data, but I'm having > > trouble making that work. > > > So, just wondering if anyone could suggest a better path to accomplish > > this? Or am I on the correct path? > > > Thanks! > > Troy --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
