[webbeans-dev] Webbeans Junit Runner

Aslak Knutsen aslak at conduct.no
Wed Jul 29 07:37:53 EDT 2009


Hi,

I've written a Junit Runner for Webbeans support in TestCases. The following
features are supported:
 - TestCase class field injection
 - TestMethod arg injection
 - Producers / Observers in the TestCase seems to work without any extras..
 - 'Should' run in any EE/Servlet/SE enviroment (Only SE tested at the
moment)


The Runner tries to locate the appropriate BeanManager based on the
following rules in order:
- Lookup "java:comp/BeanManager" via JNDI -> EE enviroment
- If success use that BeanManager.
- Call CurrentManager.rootManager() -> Servlet enviroment / Previously
initiated SE enviroment
- If success use that BeanManager.
- Load class "org.jboss.webbeans.environment.se.StartMain" -> SE enviroment
- If success, initialize the enviroment using StartMain.main(new String[0])
and use CurrentManager.rootManager().

Overrides the default Junit TestMethod validation with a new set of rules:
- validatePublicVoid (default validatePublicVoidNoArgs)
- validateBindingTypeParameters (only arguments annotated with a BindingType
allowed)

Overrides the createTest method to inject TestCase fields:
pesudo: for each Field "annotated with a BindingType" set getInstanceByType
Overrides methodInvoker to inject TestMethod args:
pesudo: for each Arg getInstanceByType


Annotate the TestCase with @RunWith(Webbeans.class) and one should be good
to go..

If interested, the code with TestCase example can be found at:
http://pastebin.com/m66ad1894


-- 
--
Aslak Knutsen; +47 952 38 791; fax +47 22 33 60 24
Kongens gate 14; Boks 805 Sentrum, 0104 Oslo;
http://www.conduct.no; mailto:aslak at conduct.no

Conduct AS - Professional Open Source Services
- Red Hat/JBoss Premier System Integrator
- Pentaho Preferred Integration Partner
- Atlassian Technology Partner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/weld-dev/attachments/20090729/805c5930/attachment.html 


More information about the weld-dev mailing list