@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");
    }
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект