[
https://issues.jboss.org/browse/ARQ-1303?page=com.atlassian.jira.plugin.s...
]
omid pourhadi commented on ARQ-1303:
------------------------------------
You don't need to lookup the bean, we can provide a feature to autowire beans in a
test class by using reflection. please take a look at AbstractSpringInjectionEnricher.java
registerBean method. in my point of view, it might be better to keep away the developer
from complexity of creating spring context and let Arquillian take care of it so having a
prepared context and controlling it by annotation is more convenient than creating it.
second approach sounds cool but you only will be able to use it in Spring 3.x and it does
not work with static application context.
another problem that thanks to Arquillian it is solved now is to use your test context in
server. it is really cumbersome specially if you are using Grizzly (jersey) but it is not
our concern in this case.
WDYT ?
Add Spring StaticApplicationContext
-----------------------------------
Key: ARQ-1303
URL:
https://issues.jboss.org/browse/ARQ-1303
Project: Arquillian
Issue Type: Enhancement
Security Level: Public(Everyone can see)
Components: Extension - Spring
Reporter: omid pourhadi
Assignee: Marius Bogoevici
Priority: Minor
Original Estimate: 1 week, 1 day
Remaining Estimate: 1 week, 1 day
It is a common way that developers programmatically register beans into context specially
in testing rather than reading bean definitions from external configuration sources, in
this case, you need to use StaticApplicationContext.
As far as my experience concerned, there are some circumstances that you need to have
populated context when you are testing
1. for registering mock objects into context
let's assume we inject a DAO into a service and we want to mock DAO then test our
service
{code:title=Bar.java|borderStyle=solid}
public class MockTest(){
@Mock
Dao dao;
public void testMethod(){
ctx.getBeanFactory().registerSingleton(dao.getClass().getName(), dao);
}
}
{code}
2. for specifying classes not packages
sometimes you need to create a spring context by only some specific classes from
different packages not the whole packages.
It might be good idea to have an annotation ClassToScan({}) to define whcih classes, you
want to scan
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira