Hibernate, простое внедрение зависимости от типа пользователя - PullRequest
1 голос
/ 16 марта 2011

В ответ на вопрос о модульном тестировании моего POJO:

public class MyPojo{
    private final Object interestingData;

    MyPojo(Object data){
        interestingData = data;
    }

   //Methods etc...
}

Hibernate заполняет последнее поле, а частный конструктор пакета предназначен только для модульного тестирования.Я хочу дать конструктору другие объекты для выполнения логики, которая должна быть насмешливой в тестах.Например,

public class MyPojo{
    private final Object interestingData;
    private final ILogicEngine engine;

    MyPojo(Object data, ILogicEngine engine){
        interestingData = data;
        this.engine = engine
    }

   //Methods etc...
}

Как правильно / легко перейти в режим гибернации для подачи «движка» в каждый POJO?Spring кажется излишним, так как в производстве будет только один двигатель, я делаю это только для тестирования.Должен ли я каким-то образом вводить ILogicEngine через MyPojoUserType?(не уверен, как это будет работать, так как я сам его не создаю, hibernate делает)

Или это вонючий, и я должен держать объекты, представляющие данные БД, чистыми и оборачивать их для работы механизмов?*

1 Ответ

1 голос
/ 16 марта 2011

Я думаю, что мы смешиваем проблемы DI и ORM здесь. Было бы разумно даже попытаться использовать hibernate для целей DI, чтобы вы могли легко тестировать вещи? Я согласен с вашим последним утверждением. Храните данные отдельно от двигателя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...