Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deleted @Transactional and added @AfterEach in tests #34

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

funnyDevGirl
Copy link

Приветствую!
Когда в тесте используется @transactional, то в классах доменных моделей будут загружены и поля с ленивой загрузкой, т.е. там, где потенциально могло вылететь исключение LazyInitializationException, оно не вылетет, и тест покажет ложный результат.
Есть и другие возможные проблемы, подробнее:
https://dev.to/henrykeys/don-t-use-transactional-in-tests-40eb

Рекомендуется писать тесты без @transactional и удалять данные вручную или использовать расширения.

@AfterEach
public void clean() {
    postCommentRepository.deleteAll();
    postRepository.deleteAll();
    userRepository.deleteAll();
}

@fey fey requested a review from Malcom1986 August 20, 2024 18:01
@Malcom1986
Copy link
Contributor

А давайте лучше очищать базу не после теста, а перед каждым тестом. В большинстве случаев очистка после теста стработает нормально, но не во всех. Нет абсолютной гарантии, что AfterEach выполнится (например, свет отключили). Тогда база останется не очищенной. Очистка базы перед тестом должна решить эту проблему

@Malcom1986
Copy link
Contributor

@funnyDevGirl Алина, приветствую! Вы доработаете этот ПР?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants