Вопрос в том, что вы тестируете и почему. Это ответит на вопрос.
Если:
Я хочу протестировать сторонний инструмент
То есть вы тестируете, работает ли NHibernate (это не тест
Я делаю). Затем делайте все, что требуется, поэтому рефакторинг не требуется. Освободись.
Я хочу проверить, как мой код взаимодействует с инструментом сторонней организации
Тогда вы говорите о том, что я люблю называть тестом взаимодействия. Рефакторинг необходим, поскольку вы больше интересуетесь тем, как вы используете NHiberate, чем если бы он работал.
Я хочу проверить свой код
Абстракция NHibernate целиком. Делать что нужно ... обертку? Теперь вы вернулись к юнит-тестированию.
Я хочу протестировать свое приложение с точки зрения пользователя
Я думаю, что это выходит за рамки вашего разговора. Но вы можете использовать эту область, говоря о компонентах. Так что ... хм ... стоит, но не легко. Это не модульный тест, поэтому вы хотите создать экземпляр компонента / приложения и запустить его целиком, как его пользователь. Я называю эти «UAT» и обычно применяю как «кодированные UAT».