luchob / softuni-music-db

Our workshop project for the course Spring Advanced 2021
3 stars 11 forks source link

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

Closed TeoKarakashev closed 3 years ago

TeoKarakashev commented 3 years ago

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

luchob commented 3 years ago

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

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

Поздрави!

TeoKarakashev commented 3 years ago

Коничи уа! Много благодаря, Лъчо и много съжалявам, че те притеснявам пак, но сега си имплементирах интерсептор за page title и не мога да го подкарам да рарботи, добавих в хедъра, но не иска да го захапе.</p> <p>Гита си е същия: <a href="https://github.com/TeoKarakashev/Softuni-Spring-Web-Project">https://github.com/TeoKarakashev/Softuni-Spring-Web-Project</a></p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/luchob"><img src="https://avatars.githubusercontent.com/u/10339738?v=4" />luchob</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <p>Гапротив, захапва го - пуснах го локално, работи, спира си на брейкпойнт, показва си тайтъла. Ето тайтъла:</p> <img width="270" alt="Screenshot 2021-03-31 at 20 53 25" src="https://user-images.githubusercontent.com/10339738/113188917-4d3a0e00-9263-11eb-90dc-edab37cc4e82.png"> <p>На хоум пейджа:</p> <img width="698" alt="Screenshot 2021-03-31 at 20 53 39" src="https://user-images.githubusercontent.com/10339738/113188937-51662b80-9263-11eb-8ed2-8e5b191f4626.png"> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/TeoKarakashev"><img src="https://avatars.githubusercontent.com/u/77853711?v=4" />TeoKarakashev</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <p>Проблемът е от браузъра, на другия работи, най-вероятно някаква настройка съм пипал, благодаря ти много!</p> <p>Бързо оздравяване!</p> </div> </div> <div class="page-bar-simple"> </div> <div class="footer"> <ul class="body"> <li>© <script> document.write(new Date().getFullYear()) </script> Githubissues.</li> <li>Githubissues is a development platform for aggregating issues.</li> </ul> </div> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script> <script src="/githubissues/assets/js.js"></script> <script src="/githubissues/assets/markdown.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/highlight.min.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/languages/go.min.js"></script> <script> hljs.highlightAll(); </script> </body> </html>