Задать вопрос
@Kentaro23

Как правильно замокать Persistence.createEntityManagerFactory?

добрый день! Есть кусок функции где использую EntityManagerFactory и EntityManager
em = emf.createEntityManager();

            em.getTransaction().begin();
            em.persist(jt);
            em.getTransaction().commit();
            em.close();
Как правильно замокать эти сущности попробовал по мануалу но не получается падаю с ошибкой так-как EntityManager null ниже код теста
@RunWith(PowerMockRunner.class)
@PrepareForTest(Persistence.class)
@PowerMockIgnore({"javax.persistence.*", "org.mockito.*", "com.package.IDataMapper", "com.package.ICache"})
public class DbLoggerTest {

    @Mock
    private static EntityManager entityManager;

    @Mock
    private static EntityManagerFactory factory;

    private DbLogger logger;

    @Before
    public void init() {

        PowerMockito.mockStatic(Persistence.class);
        factory = mock(EntityManagerFactory.class);
        BDDMockito.given(factory.createEntityManager()).willReturn(entityManager);
        BDDMockito.given(Persistence.createEntityManagerFactory(anyString())).willReturn(factory);

        logger = new DbLogger();
    }

    @Test
    public void log() {
        logger.log(Level.FINE, "FINE");
    }
  • Вопрос задан
  • 210 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы