|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
всем привет. создал минимальный spring-boot проект для отработки тестов с camel. При отправке на тест вываливается сообщение что единственный тест не прошел, хотя в предыдущей строке есть сообщение Код: java 1.
Кто-нибудь сталкивался с это проблемой ? PS: сам проект прицепил. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2020, 15:07 |
|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
screen short прицепил ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2020, 15:12 |
|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
kadet, ну... Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
В маршруте вы шлете в итоге в file:kgw, а в тесте мокаете mock:file:kgw - вот в нее ничего не приходит, а изначального говорите, что в нее должно Goodbye прилететь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2020, 15:46 |
|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
Андрей Панфилов kadet, ну... Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
В маршруте вы шлете в итоге в file:kgw, а в тесте мокаете mock:file:kgw - вот в нее ничего не приходит, а изначального говорите, что в нее должно Goodbye прилететь. что-то не то. смотрите, у нас есть маршрут: 1. "Начало" (идентификатор "direct:firstRoute") 2. "Конец" (идентификатор "file:kgw") В тесте я объявляю, что : 1. "Конец" ("file:kgw") это мок 2. "Конец" ("file:kgw") должен иметь содержимое "Goodbye" ( mock.expectedBodiesReceived("Goodbye"); ) 3. При помощи template отправляем сообщение (типа null) в маршрут, который имеет узел "setBody(constant("Goodby"))" Т.е. несмотря на то что в маршрут отправлено нулевое сообщение, маршрут сам должен его заполнить и мок должен это увидеть и подтвердить. Однако в терминале (консоль) мы видим, сначало положительное утверждение о выполнении теста и тут же в следующей строке сообщение о провале теста. И общий результат естественно красный. Это меня вообще "выбивает" из колеи PS: я упростил тест в том, что вместо Код: java 1.
поставил Код: java 1.
но результат тот же. У меня возникает такое впечатление, что тест как-буд-то вызывается два раза ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2020, 17:27 |
|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
Поставь лог в маршрут, скорее всего все нормально вызывается один раз. Откуда пример тестов взят? - ставлю на то, что бут с кемелом в этом плане интегрирован весьма фигово, и ничего на самом деле не мокается нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2020, 17:46 |
|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
kadet смотрите, у нас есть маршрут: 1. "Начало" (идентификатор "direct:firstRoute") 2. "Конец" (идентификатор "file:kgw") В тесте я объявляю, что : 1. "Конец" ("file:kgw") это мок 2. "Конец" ("file:kgw") должен иметь содержимое "Goodbye" ( mock.expectedBodiesReceived("Goodbye"); ) ох... вы внимательно прочли что я написал? В маршруте у вас "file:kgw", в тесте "mock:file:kgw" (если не особо заметно, то поясню: названия разные), поэтому используя сконфигурированный таким образом маршрут, в "mock:file:kgw" ничего прилететь не может. Если нужно подменять эндпойнты моками, то самый простой вариант - использовать плейсхолдеры: https://camel.apache.org/manual/latest/using-propertyplaceholder.html, тогда в тестах можно свои названия объявить. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2020, 19:12 |
|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
Ну ТС определенно на @MockEndpoints("file:kgw") рассчитывает ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2020, 19:20 |
|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
SpringMan Поставь лог в маршрут, скорее всего все нормально вызывается один раз. Откуда пример тестов взят? - ставлю на то, что бут с кемелом в этом плане интегрирован весьма фигово, и ничего на самом деле не мокается нормально. тест взял ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 11:44 |
|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
[quot Андрей Панфилов#22091940] kadet вы внимательно прочли что я написал? В маршруте у вас "file:kgw", в тесте "mock:file:kgw" (если не особо заметно, то поясню: названия разные), поэтому используя сконфигурированный таким образом маршрут, в "mock:file:kgw" ничего прилететь не может. Если нужно подменять эндпойнты моками, то самый простой вариант - использовать плейсхолдеры: https://camel.apache.org/manual/latest/using-propertyplaceholder.html, тогда в тестах можно свои названия объявить. Префикс "mock" в UnitTest в выражении Код: java 1. 2.
"сообщает" движку, что нужно "применить" mock к узлу (EndPoint) "file:kgw" и выполнить инъекцию в переменную "mock" типа "MockEndpoint". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 15:03 |
|
Apache Camel and junit test
|
|||
---|---|---|---|
#18+
причина, по которой в этом простом приложении "сваливался" тест, заключалась в том, что аннотация "@Test" имела объявление Код: java 1.
как только я изменил объявление на Код: java 1.
всё заработало. PS: капец просто, все мозги наизнанку вывернул. Так и не понял, почему с "jupiter" отказывается работать. проект прицепил для желающих ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 15:13 |
|
|
start [/forum/topic.php?fid=59&msg=39933573&tid=2120881]: |
0ms |
get settings: |
27ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
210ms |
get tp. blocked users: |
1ms |
others: | 313ms |
total: | 643ms |
0 / 0 |