Re: how to test session/request scopes ?
You can simulate a request by instantiating GuiceFilter() and passing it a mock request and response. If you have previously installed a configured ServletModule, it will execute the servlets + filters registered in the GS2 pipeline. Dhanji. On Sat, Jun 13, 2009 at 5:12 AM, naaka wrote: > > thanks dhanji. > > but what other ways do i have for testing ? > > i wanted to do some integration testing and i need to have everything > injected by the container. > > > nicola > > > > On Jun 12, 6:32 pm, "Dhanji R. Prasanna" wrote: > > You should bind @RequestScoped and @SessionScoped to your own mock Scope > > implementation. Then Guice will use this instead of its default HTTP > scopes. > > In this case you want to omit the ServletModule in your test. > > MockRequestScope myMockScope = new MockRequestScope(); > > bindScope(RequestScoped.class, myMockScope); > > > > //after tests > > myMockScope.assertThatThingsWereScoped(); > > > > Btw, this is a very heavyweight way of testing, so I assume this is not > > something you need to do often. > > good luck! > > > > Dhanji. > > > > On Fri, Jun 12, 2009 at 9:18 AM, naaka wrote: > > > > > hi, > > > i tried out google guice and it looks great. > > > > > i have tdd-ed a small spike with persistence and singleton/no scopes > > > and every worked fine. > > > > > now i have added the servlet-guice extension, and changed a class to > > > session scope, but my test complaint: > > > > > com.google.inject.ProvisionException: Guice provision errors: > > > > > 1) Error in custom provider, com.google.inject.OutOfScopeException: > > > Cannot access scoped object. Either we are not currently inside an > > > HTTP Servlet request, or you may have forgotten to apply > > > com.google.inject.servlet.GuiceFilter as a servlet filter for this > > > request. > > > while locating com.naaka.spikes.domain.User > > >for field at com.naaka.spikes.domain.UserTest.defaultUser > > > (UserTest.java:24) > > > while locating com.naaka.spikes.domain.UserTest > > > > > i already added the servlet module in the setup method: > > > > > @BeforeClass > > > public void setupInjection() { > > > ... > > > modules.add(declarePersistence); > > > modules.add(configPersistence); > > > modules.add(new ServletModule()); > > > injector = Guice.createInjector(modules); > > > ... > > > } > > > > > how i can setup a test to work with session modules ? > > > > > do i have to mock something (servlet request/response/filter) ? > > > > > is there a base test class or a test i can copy from ? > > > > > THANKS ! > > > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to google-guice@googlegroups.com To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-guice?hl=en -~--~~~~--~~--~--~---
Re: how to test session/request scopes ?
thanks dhanji. but what other ways do i have for testing ? i wanted to do some integration testing and i need to have everything injected by the container. nicola On Jun 12, 6:32 pm, "Dhanji R. Prasanna" wrote: > You should bind @RequestScoped and @SessionScoped to your own mock Scope > implementation. Then Guice will use this instead of its default HTTP scopes. > In this case you want to omit the ServletModule in your test. > MockRequestScope myMockScope = new MockRequestScope(); > bindScope(RequestScoped.class, myMockScope); > > //after tests > myMockScope.assertThatThingsWereScoped(); > > Btw, this is a very heavyweight way of testing, so I assume this is not > something you need to do often. > good luck! > > Dhanji. > > On Fri, Jun 12, 2009 at 9:18 AM, naaka wrote: > > > hi, > > i tried out google guice and it looks great. > > > i have tdd-ed a small spike with persistence and singleton/no scopes > > and every worked fine. > > > now i have added the servlet-guice extension, and changed a class to > > session scope, but my test complaint: > > > com.google.inject.ProvisionException: Guice provision errors: > > > 1) Error in custom provider, com.google.inject.OutOfScopeException: > > Cannot access scoped object. Either we are not currently inside an > > HTTP Servlet request, or you may have forgotten to apply > > com.google.inject.servlet.GuiceFilter as a servlet filter for this > > request. > > while locating com.naaka.spikes.domain.User > > for field at com.naaka.spikes.domain.UserTest.defaultUser > > (UserTest.java:24) > > while locating com.naaka.spikes.domain.UserTest > > > i already added the servlet module in the setup method: > > > @BeforeClass > > public void setupInjection() { > > ... > > modules.add(declarePersistence); > > modules.add(configPersistence); > > modules.add(new ServletModule()); > > injector = Guice.createInjector(modules); > > ... > > } > > > how i can setup a test to work with session modules ? > > > do i have to mock something (servlet request/response/filter) ? > > > is there a base test class or a test i can copy from ? > > > THANKS ! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to google-guice@googlegroups.com To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-guice?hl=en -~--~~~~--~~--~--~---
Re: how to test session/request scopes ?
You should bind @RequestScoped and @SessionScoped to your own mock Scope implementation. Then Guice will use this instead of its default HTTP scopes. In this case you want to omit the ServletModule in your test. MockRequestScope myMockScope = new MockRequestScope(); bindScope(RequestScoped.class, myMockScope); //after tests myMockScope.assertThatThingsWereScoped(); Btw, this is a very heavyweight way of testing, so I assume this is not something you need to do often. good luck! Dhanji. On Fri, Jun 12, 2009 at 9:18 AM, naaka wrote: > > hi, > i tried out google guice and it looks great. > > i have tdd-ed a small spike with persistence and singleton/no scopes > and every worked fine. > > now i have added the servlet-guice extension, and changed a class to > session scope, but my test complaint: > > com.google.inject.ProvisionException: Guice provision errors: > > 1) Error in custom provider, com.google.inject.OutOfScopeException: > Cannot access scoped object. Either we are not currently inside an > HTTP Servlet request, or you may have forgotten to apply > com.google.inject.servlet.GuiceFilter as a servlet filter for this > request. > while locating com.naaka.spikes.domain.User >for field at com.naaka.spikes.domain.UserTest.defaultUser > (UserTest.java:24) > while locating com.naaka.spikes.domain.UserTest > > > i already added the servlet module in the setup method: > > @BeforeClass > public void setupInjection() { > ... > modules.add(declarePersistence); > modules.add(configPersistence); > modules.add(new ServletModule()); > injector = Guice.createInjector(modules); > ... > } > > how i can setup a test to work with session modules ? > > do i have to mock something (servlet request/response/filter) ? > > is there a base test class or a test i can copy from ? > > > > THANKS ! > > > > > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to google-guice@googlegroups.com To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-guice?hl=en -~--~~~~--~~--~--~---
how to test session/request scopes ?
hi, i tried out google guice and it looks great. i have tdd-ed a small spike with persistence and singleton/no scopes and every worked fine. now i have added the servlet-guice extension, and changed a class to session scope, but my test complaint: com.google.inject.ProvisionException: Guice provision errors: 1) Error in custom provider, com.google.inject.OutOfScopeException: Cannot access scoped object. Either we are not currently inside an HTTP Servlet request, or you may have forgotten to apply com.google.inject.servlet.GuiceFilter as a servlet filter for this request. while locating com.naaka.spikes.domain.User for field at com.naaka.spikes.domain.UserTest.defaultUser (UserTest.java:24) while locating com.naaka.spikes.domain.UserTest i already added the servlet module in the setup method: @BeforeClass public void setupInjection() { ... modules.add(declarePersistence); modules.add(configPersistence); modules.add(new ServletModule()); injector = Guice.createInjector(modules); ... } how i can setup a test to work with session modules ? do i have to mock something (servlet request/response/filter) ? is there a base test class or a test i can copy from ? THANKS ! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to google-guice@googlegroups.com To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-guice?hl=en -~--~~~~--~~--~--~---