luchob/softuni-music-db

Проблеми с Тестове

Closed this issue · 4 comments

Привет, привет!
Имам проблеми с интегрирането на тестовата база данни, поради някаква причина си пречи с нещата, които CommandLineRunner-а инициализира при стартиране и работи само ако са закоментирани. Голяма част от тестовете ми дават следната грешка и не мога да разбера къде бъркам
image
https://github.com/TeoKarakashev/Softuni-Spring-Web-Project

Бонджорно! Ако се вгледаме по-подробно в ексепшъна:

Caused by: org.springframework.dao.IncorrectResultSizeDataAccessException: query did not return a unique result: 4; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 4

	at com.softuni.service.impl.BrandServiceImpl.findByName(BrandServiceImpl.java:56)
	at com.softuni.service.impl.BatServiceImpl.save(BatServiceImpl.java:89)

Гърми тук:

@Repository
public interface BrandRepository extends JpaRepository<BrandEntity, String> {

    Optional<BrandEntity> findByName(String name);
}

Което означава, че в следствие на тестовете си вкарал в ДБ два бранда с еднакво име. Ако името на бранда е уникално, направи колонката уникална. Така ще гръмваш много по-близо до грешката.

След всеки тест почиствай ДБ-то от останалите ентитита, защото освен ако не ползваш @DirtiesContext всичко си остава в ДБ между изпълненията. В общи линии, добра практика е:

  1. @BeforeEach - initialized data
  2. execute test
  3. @AfterEach - clean up

Поздрави!

Коничи уа! Много благодаря, Лъчо и много съжалявам, че те притеснявам пак, но сега си имплементирах интерсептор за page title и не мога да го подкарам да рарботи, добавих <title> в хедъра, но не иска да го захапе.

Гита си е същия: https://github.com/TeoKarakashev/Softuni-Spring-Web-Project

Гапротив, захапва го - пуснах го локално, работи, спира си на брейкпойнт, показва си тайтъла. Ето тайтъла:

Screenshot 2021-03-31 at 20 53 25

На хоум пейджа:

Screenshot 2021-03-31 at 20 53 39

Проблемът е от браузъра, на другия работи, най-вероятно някаква настройка съм пипал, благодаря ти много!

Бързо оздравяване!