luchob / softuni-music-db

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

проблем с тестовете на контролерите #34

Closed DesislavaGetova-Petrova closed 3 years ago

DesislavaGetova-Petrova commented 3 years ago

Здравей Лъчо, срам не срам отново ще помоля да погледнеш какво друго бъркам, че не нито един Integration test не минава. Мисля че оправих нещата които препоръча вчера, но въпреки това ми дава грешка : " java.lang.IllegalStateException: Failed to load ApplicationContext". Например за LessonControlerTest. https://github.com/DesislavaGetova-Petrova/TheProject/tree/master/src/test/java/desico/project/web

luchob commented 3 years ago

Здрасти :-)

Да, не може да вдигне контекста, заради това:

    jpa:
        #For H2 Database
        database-platform: org.hibernate.dialect.H2Dialect
        hibernate:
            ddl-auto: create-drop
        open-in-view: false
        properties:
            hibernate:
                dialect: org.hibernate.dialect.MySQL8Dialect
                format_sql: true

Задала си му едновременно MySQL и H2 диалект, като ти трябва последния:

    jpa:
        #For H2 Database
        database-platform: org.hibernate.dialect.H2Dialect
        hibernate:
            ddl-auto: create-drop
        open-in-view: false

Поздрави, Л.

DesislavaGetova-Petrova commented 3 years ago

Благодаря за бързия отговор! Продължавам борбата с тези тестове...Лека вечер!

luchob commented 3 years ago

Супер, действай! Ако има проблеми, драсни някой ред!

Успех, Л.

DesislavaGetova-Petrova commented 3 years ago

Да се похваля, всички тестове минаха, но трябваше да игнорирам @AfterEach, защото даваше грешка от рода на "Referential integrity constraint violation: "FKA62J07K5MHGIFPP955H37PONJ: PUBLIC.USERS_ROLES FOREIGN KEY(ROLES_ID) REFERENCES PUBLIC.ROLES(ID) ('aee10b85-dc50-437a-bdd4-b48f3eb1f353')"; SQL statement: delete from roles where id=? [23503-200] "- заради връзките явно. Може ли така да остава теста или трябва задължително да има изтриване на базата?

luchob commented 3 years ago

Здравей! Според мен не е добре да го оставиш по този начин. Струва ми се, че се опитваш да триеш някаква роля, която има юзър асайнат. Най-доброто решение е да изтриваш данните, които си създала в теста. Това трябва да е съгласувано и с ДБИнит-а ти. Поздрави!

DesislavaGetova-Petrova commented 3 years ago

Здравей! Благодаря за отговора! А може ли да е изтриването да е в @BeforeEach, защото така теста минава?

@BeforeEach public void setup() { unitNameRepository.deleteAll(); chapterNameRepository.deleteAll(); lessonRepository.deleteAll(); logRepository.deleteAll();

    testData = new LessonTestData(
            unitNameRepository,
            chapterNameRepository,
            lessonRepository,
            logRepository
    );
    testData.init();
    testLessonId = testData.getTestLessonId();
}

// @AfterEach // public void tearDown() { // testData.cleanUp(); // } //

DesislavaGetova-Petrova commented 3 years ago

Здравей, извинявай за безпокойството ,но по-горе зададения въпрос отпада. Намерих къде ми е бил проблема-в размяната на поредността на действията. Напоследък, явно от преумора("много дини под една мишница") нещо съм много разсеяна...Хубав и успешен ден!