If you want to test a route(s) in isolation then, yes, you can avoid the Spring 
tricks and create the config yourself. Or load it in something like 
@TestProperty. For creating the route classes I do something like this:

public class SteveRouteTest extends CamelTestSupport {

    @Override
    protected RouteBuilder[] createRouteBuilders() {
        return new RouteBuilder[] {
                context.getInjector().newInstance(MyRoutes.class)
                };
    }

}

> -----Original Message-----
> From: Jan Bares, WOOD & Co. <jan.ba...@wood.cz.INVALID>
> Sent: Monday, January 27, 2025 9:51 AM
> To: users@camel.apache.org
> Subject: RE: Testing with JUnit Spring Boot
> 
> Thank you. But without @SpringBootTest how should I code my
> createRouteBuilder() method? I need to reuse my RouteXYBuilder class. This
> class is created by Spring DI. Or do I have to create all the configuration 
> beans
> manually without Spring?
> 
> Thanks, Jan
> 
> > -----Original Message-----
> > From: Steve Huston <shus...@riverace.com>
> > Sent: Monday, January 27, 2025 3:32 PM
> > To: users@camel.apache.org
> > Subject: RE: Testing with JUnit Spring Boot
> >
> > Hi Jan,
> >
> > At a high level, take away the @CamelSpringBootTest and
> > @SpringBootTest; those are what is causing the whole test context and
> route set to load and start.
> > Change your RouteXYTest class to extend from CamelTestSupport
> >
> >
> https://url.emailprotection.link/?bi9ZSg2pX0C7Y504_kvP1Avxf9m9db8B8PE
> T
> >
> N6spbH9byAw6gEFbneE96szuWNaBUWY3ClQl_kVyr2Ask_5Mw5g_4APVDzn
> P0TwwYbVTXe
> > PAQJcm_B35_SHg3Lw-sDAnZ
> >
> > -Steve
> >
> > > -----Original Message-----
> > > From: Jan Bares, WOOD & Co. <jan.ba...@wood.cz.INVALID>
> > > Sent: Monday, January 27, 2025 9:18 AM
> > > To: users@camel.apache.org
> > > Subject: Testing with JUnit Spring Boot
> > >
> > > Hi,
> > >
> > > I need some help or at least pointer to samples on how to write
> > > JUnit tests for Camel 4.6 Spring Boot application. I don't know how
> > > to test single route in isolation without starting all the other 
> > > (autostarted)
> routes.
> > >
> > > Our application has many routes that look like this
> > >
> > > @Configuration
> > > @Component
> > > @PropertySource("classpath:application.properties")
> > > @ConfigurationProperties(prefix = "xy-endpt") public class
> > > RouteXYConfig { ....
> > > }
> > >
> > >
> > > @Component
> > > public class RouteXYBuilder extends RouteBuilder {
> > >    ....
> > >     private final RouteXYConfig routeXYConfig;
> > >
> > >     public RouteXYBuilder(RouteXYConfig routeXYConfig) {
> > >         this. routeXYConfig  = routeXYConfig;
> > >     }
> > >
> > >     @Override
> > >     public void configure() {
> > >         from(routeXYConfig.buildIncomingEndpoint()).....
> > >
> > >        // add internal Direct routes
> > >     }
> > > }
> > >
> > > I want to test each route in isolation, I have a test prototype like this:
> > >
> > > @CamelSpringBootTest
> > > @SpringBootTest(classes = Application.class) @DirtiesContext
> > > @UseAdviceWith public class RouteXYTest {
> > >    @Test
> > >     public void testRoute() throws Exception {
> > >       // advice routeXY with mock
> > >
> > >       camelConext.start();
> > >
> > >     .....
> > >     }
> > > }
> > >
> > > The prototype works but when I run camelContext.start() all the
> > > other routes are also started. I want to test single routeXY in
> > > isolation. I am not sure how can I achieve this.
> > >
> > > Kind regards, Jan
> > >
> > >
> > >
> > >
> > >
> > > ________________________________
> > > DISCLAIMER
> > > WOOD & Company Financial Services, a.s. is authorized and regulated
> > > by the Czech National Bank as its Home State Regulator and by
> > > relevant local regulatory authorities in the jurisdictions where it
> > > operates. For further information about WOOD & Co., its investment
> > > services, financial instruments and associated risks, safeguard
> > > client assets (incl. compensation schemes) and contractual
> > > relationship please see our website at
> > > https://url.emailprotection.link/?bI6_Ebm9JZGGZD6fSwcual8JtOvB-
> AO5kT
> > >
> 8SRPcAvCyYgb1UYvmvpuUi36lfC56KiB7ToHYlrHOQNx4ZrGiqBbeNb4uu0MGz
> 6kRl6i
> > > kAUbu54eMBtBmo6zcu4qqCzF_Gbq8jwq3FOBS0DO94w84Fot_dzJ-
> VjXkwXNPPi_SVWJ
> > > 54~
> > > OomE_slOtZrtEowu3qps62OL4qoWUIaV7_xQsWG3Fl-
> > >
> dCxO4nSA~~<https://url.emailprotection.link/?bI6_Ebm9JZGGZD6fSwcual8
> > > JtOvB-AO5kT8SRPcAvCybi2XeqyGXTpmne_MxJ1VQe4L4H8J2R-
> DCCjowghArilWrkCR
> > > VD8Dy-Qu5BFctoOZf2tbIuMbeBedt5OXawahts
> > > R6V_lY6QtD_x6_bSzqWxSgygrxgD_JmDvaoagpMzsH98BA8KopHAux-
> > > ui7CIULQ~~>. Unless otherwise stated, this transmission is neither
> > > an offer nor the solicitation of an offer to sell or purchase any
> > > investment. All estimates, opinions and other information contained
> > > herein are subject to change without notice and are provided in good
> > > faith but without legal responsibility or liability. Opinion may be
> > > personal to the author and may not reflect the opinions of WOOD &
> > > Co. Communications from sales persons, sales traders or traders
> > > should not be regarded as investment research and may contain
> > > opinions or trading ideas which are different from WOOD & Co.
> > > investment research opinions. This e-mail and any attachments are
> > > confidential and may be privileged or otherwise protected from
> > > disclosure. If you are not a named addressee you must not use,
> > > disclose, distribute, copy, print or rely on this e- mail and any of
> > > its attachments. Please notify the sender that you have received
> > > this email by mistake by replying to the email, and then delete the email
> and any copies of it. Although WOOD & Co. routinely screens e-mails for
> viruses, addressees should scan this e-mail and any attachments for viruses.
> > > WOOD & Co. makes no representation or warranty as to the absence of
> > > viruses in this e-mail or any attachments. Please note that to
> > > ensure regulatory compliance and for the protection of our clients
> > > and business, we may monitor and read e-mails sent to and from our
> server(s).
> 
> 
> 
> 
> 
> ________________________________
> DISCLAIMER
> WOOD & Company Financial Services, a.s. is authorized and regulated by the
> Czech National Bank as its Home State Regulator and by relevant local
> regulatory authorities in the jurisdictions where it operates. For further
> information about WOOD & Co., its investment services, financial instruments
> and associated risks, safeguard client assets (incl. compensation schemes) and
> contractual relationship please see our website at
> https://url.emailprotection.link/?bLf6lI8IO4nr8mLy7La_SRm2gg78Z9wdK2VE
> OomE_slOtZrtEowu3qps62OL4qoWUIaV7_xQsWG3Fl-
> dCxO4nSA~~<https://url.emailprotection.link/?bvYo4x2HM_flZb8rRyDo6KRo
> R6V_lY6QtD_x6_bSzqWxSgygrxgD_JmDvaoagpMzsH98BA8KopHAux-
> ui7CIULQ~~>. Unless otherwise stated, this transmission is neither an offer 
> nor
> the solicitation of an offer to sell or purchase any investment. All 
> estimates,
> opinions and other information contained herein are subject to change
> without notice and are provided in good faith but without legal responsibility
> or liability. Opinion may be personal to the author and may not reflect the
> opinions of WOOD & Co. Communications from sales persons, sales traders or
> traders should not be regarded as investment research and may contain
> opinions or trading ideas which are different from WOOD & Co. investment
> research opinions. This e-mail and any attachments are confidential and may
> be privileged or otherwise protected from disclosure. If you are not a named
> addressee you must not use, disclose, distribute, copy, print or rely on this 
> e-
> mail and any of its attachments. Please notify the sender that you have
> received this email by mistake by replying to the email, and then delete the
> email and any copies of it. Although WOOD & Co. routinely screens e-mails for
> viruses, addressees should scan this e-mail and any attachments for viruses.
> WOOD & Co. makes no representation or warranty as to the absence of
> viruses in this e-mail or any attachments. Please note that to ensure 
> regulatory
> compliance and for the protection of our clients and business, we may
> monitor and read e-mails sent to and from our server(s).

Reply via email to