Вам нужно решить, что вы хотите на самом деле протестировать на своем уровне обслуживания, независимо от того, используете ли вы NH.
В вашем примере хорошим первым тестом может быть проверка того, что адрес электронной почты и пароль, которые вы передаете в метод обслуживания, фактически используются в качестве проверки в вашем сеансе.
В этом случае вам просто нужно будет заглушить переменную сеанса и настроить ожидания, используя какую-то фиктивную среду (например, Rhino Mocks), которая будет ожидать предварительно определенный адрес электронной почты и пароль, а затем вернуть ожидаемый результат .
Какой-то псевдокод для этого может выглядеть так:
void ValidateUser_WhenGivenGoodEmailAndPassword_ReturnsTrue()
{
//arrange
var stubbedSession = MockRepository.GenerateStub<ISession>();
stubbedSession
.Expect(x => x.Query<UserInfo>())
.Return(new List {
new UserInfo { Email = "johns@email.com", Password = "whatever" } });
var service = new UserAccountService(stubbedSession);
//act
var result = service.ValidateUser("johns@email.com", "whatever");
//assert
Assert.That(result, Is.True);
}