|
|
|
Mockito: не инжектится Mock EntityManager через field injection
|
|||
|---|---|---|---|
|
#18+
В тесте пишу Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В данном случае mock должен инжектиться в инстанс UniqueConstraintValidator через field injection, как написано в документации mockito: http://docs.mockito.googlecode.com/hg/1.9.5/org/mockito/InjectMocks.html Класс UniqueConstraintValidator Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. entityManager = null Для чего мне понадобился мок в классе валидатора... Когда используется реальный EntityManager, при запуске теста в строке query.createQuery().getResultList(); выбрасывается такой иксепшен: авторorg.hibernate.AssertionFailure: null id in com.clients.entity.CClient entry (don't flush the Session after an exception occurs) Это известная проблема и возникает она обычно при использовании unit-тестов. Другой возможный вариант её решения - очистить сессию hibernate, перед тем действием, которое вызывает ошибку. Но я не знаю как получить сессию в QueryDSL, который тут используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 10:39 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39117135&tid=2124615]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
154ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 458ms |

| 0 / 0 |
