Hi Inge,

Testify doesn't support overriding services actually within the repository 
(currently, it make components check for overrides before going to the 
registry - hence the annotation name @ForComponents). 

However, would a simple unit test of the service do the trick for you? In 
other words, just create the ModuleOrderProvider by hand, passing in the 
mocked/faked dependencies : 
ModuleOrderProvider u = new ModuleOrderProviderImpl(settingsFacade);

- Paul



Inge Solvoll <inge.tapes...@gmail.com> wrote on 23/02/2010 10:42:52:

> Ok, so now I need to mock one of the dependencies of a service I'm 
testing.
> I realized that I don't know how to do that when I manually created my
> registry. I don't want to have a "TestModule" that builds fakes for my
> external dependencies, in this case it is enough to just mock the 
service
> that provides configuration values.
> 
> Then I tried using testify, like below, but Mockito claims that my
> "settings" service is not a mock, so I guess testify isn't built to 
support
> this kind of mocking... Any ideas?
> 
>   @Mock
>   @ForComponents
>   private SettingsFacade settings;
> 
>   @Test
>   public void settingValueIsCachedInThread() {
>     when(settings.get(MODULE_ORDER)).thenReturn("module1,module2");
>     ModuleOrderProvider u = 
tester.getService(ModuleOrderProvider.class); //
> This service dependes on the SettingsFacade service
>     u.getOrder();
>     u.getOrder();
>     verify(settings.get(MODULE_ORDER), times(1));
>   }
> 
> 
> 
> 
> 
> 
> 
> On Thu, Feb 18, 2010 at 8:58 AM, Ulrich Stärk <u...@spielviel.de> wrote:
> 
> > Hmm, you are right.
> >
> > The builder method for that service would be called multiple times 
though
> > IIRC. Maybe somehow check that then?
> >
> > Uli
> >
> > On 17.02.2010 23:32 schrieb Martin Strand:
> >
> >  Hmm, why different instances? Wouldn't every thread see the same 
proxy
> >> instance?
> >>
> >> Martin
> >>
> >> On Wed, 17 Feb 2010 12:17:35 +0100, Ulrich Stärk <u...@spielviel.de>
> >> wrote:
> >>
> >>  Querying the registry for the same service from different threads
> >>> should yield different instances
> >>> when using the perthread scope. Just test that. No need for a 
request
> >>> if your service doesn't
> >>> require one.
> >>>
> >>> Uli
> >>>
> >>> On 17.02.2010 11:42 schrieb Inge Solvoll:
> >>>
> >>>> Hi!
> >>>>
> >>>> I recently encountered a bug in one of my services, where it had 
the
> >>>> wrong
> >>>> scope because I put the scope annotation on the interface rather 
than
> >>>> on the
> >>>> implementing class. I got the idea that I could manually create a 
T5 IOC
> >>>> registry to do integration testing on my services. But how can I 
test
> >>>> "perthread" scope on services in the test registry when there are 
no
> >>>> real
> >>>> requests? I'm assuming this requires mocking the Request object in
> >>>> some way?
> >>>>
> >>>> Inge
> >>>>
> >>>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>
> >>
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > For additional commands, e-mail: users-h...@tapestry.apache.org
> >
> >



---

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorized copying, 
disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to http://www.db.com/en/content/eu_disclosures.htm for additional 
EU corporate and regulatory disclosures.

Reply via email to