Hi All,
As mentioned in my previous post I'm reviewing AOP for use with unit testing.
I define my jboss-aop.xml in test/META-INF folder in my eclipse project. I have
noticed that it is going to be quite probable that poincut definitions are
going to cause undesired side-effects.
For instance - if you consider the test code
| @Test
| public void testCreateObject() {
| try {
| man.createObject(ap);
| } catch (Exception e) {
| fail("Test failed since exception was thrown: " + e);
| }
| }
|
| @Test
| public void testCreateObject_MultefileException() {
| try {
| man.createObject(ap);
| fail("Should have thrown MultefileException");
| } catch (Exception e) {
|
| if (!(e instanceof MultefileException)) {
| fail("Test failed since exception was not
MultefileException: " + e);
| }
| }
| }
then the jboss-aop.xml
| <bind pointcut="execution(public
$typedef{persistenceHelperTypeDef}->new(java.lang.String))">
| <interceptor
class="com.ecebs.unittest.aop.interceptor.GenericInterceptor">
| <attribute
name="mockObjectName">MockPersistenceHelper</attribute>
| </interceptor>
| </bind>
|
| <typedef name="persistenceHelperTypeDef"
|
expr="class($instanceof{com.ecebs.unittest.aop.IPersistenceHelper})
| AND !class(com.ecebs.unittest.aop.mock.*)" />
|
| <aspect class="com.ecebs.unittest.aop.aspect.ExceptionInjector" />
| <bind pointcut="execution(public void
com.ecebs.unittest.aop.AOPUnitTestManagerBean->createObject(..))">
| <advice name="throwMultefileException"
aspect="com.ecebs.unittest.aop.aspect.ExceptionInjector" />
| </bind>
The first entry in the jboss-aop.xml file mocks-out a persistence helper.
The createObject test would then pass. When I add the subsequent aspect and
bind to inject an Exception - every time createObject is called - the first
test obviously then fails - which I appreciate is exactly what I would expect
to happen given the way I have set this up!!
Is there a way; via the pointcut definitions or by changing which jboss-aop.xml
file is used, to overcome such an issue?
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4217811#4217811
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4217811
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user