Интересно - как у вас настроены слои? Похоже, что вы используете конкретную NHibernateSession, что в любом случае очень затруднит насмешку. Я бы посоветовал вам использовать ISession, который вы легко сможете издеваться.
Я не знаком с Rhino, но с помощью Moq я бы сделал:
Mock<ISession> MockSession = new Mock<ISession>();
MockSession.Setup(x => x.Query<It.IsAny<Job>()>())
.Returns(new Lis<Job> { new Job()}.AsQueryable());
Как правило, интерфейсы легче имитировать, чем конкретные классы. Фактически, единственное место, где я использую конкретный класс, - это метод статической конфигурации, в котором я должен настроить свой контейнер IoC. В другом месте я использую интерфейсы. Таким образом, мои юнит-тесты вроде себя производят! :)
Надеюсь, это пригодится!
Счастливого кодирования,
Cheers,
Крис.