Jim,

How do you think we test JBoss? Take a look at the CMP tests in the testsuite. We have an addon to JUnit that can deploy and undeploy applications. Also we have a tool that can run the tests on the server side like (I wrote this to test local interfaces), but does not require a servlet tier.

-dain


On Tuesday, December 10, 2002, at 02:23 PM, Jim Crossley wrote:

These are good points, and I appreciate yours and others' prompt replies. However, the solutions presented so far seem to force me to complicate my object model to facilitate testing.

I agree that an app that is difficult to test probably suffers from poor design, but web apps by their very nature are difficult to test.

The app I'm currently working on is very CRUD-ish; it does simple read/write maintenance on a bunch of related objects. I don't want the web tier to access the Entity beans directly -- this would violate the transactional requirements -- so they go through a Session Facade. Creating additional POJO's through which the session beans interact with the entities only adds an unnecessary layer of complexity IMHO.

The app is currently implemented using OJB, and I'm interested in refactoring it to use CMP EJB's, which IMHO are much easier to create and maintain (with Xdoclet, of course) than OJB.

The big benefit of using OJB, however, is that a user can easily test the entire app from end-to-end without deploying or even interacting with an external resource. This is possible with Hypersonic's in-memory database. It got me thinking that an in-memory EJB container would be just as cool.

JBoss is architected so well that I figured there must be a way to do it. I'm currently trying to add enough stuff to the minimal configuration to support the deployment of EJB's, and then I'll see if it's not possible to invoke that configuration from the setup of my JUnit test runner.

Does anyone else think this is possible or even worth pursuing?

-- Jim

Demyanovich, Craig - Apogent wrote:
Jim,
I currently do not unit test either Entity or Session Beans. Entity Beans
are trivial to write, and I trust that the application server will persist
them as advertised. To unit test Session Beans would require that they be
deployed. Since deployment complicates unit testing and complicated or
difficult unit tests suggest that the design could be done
differently/better, I design Session Beans to be controllers of a number of
collaborating objects. These objects are simply business objects that
encode the business logic of the system. Since they are plain Java classes,
I can unit test them very easily.
Consider a message-driven bean. As I generally design them, MDBs receive a
message, hand it to a parser, hand the results of parsing to other objects
that do something with the message contents, hand the results of that work
to a communictator, which knows how to send the final results where they
need to go. So, I don't test any part of the MDB; rather, I test the
various collaborating business objects. If I'm confident that they all
behave as expected, I'm confident that they will also do so when they
interact via one another's interface.
Hope that helps,
Craig
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user




-------------------------------------------------------
This sf.net email is sponsored by:
With Great Power, Comes Great Responsibility Learn to use your power at OSDN's High Performance Computing Channel
http://hpc.devchannel.org/
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user


-------------------------------------------------------
This sf.net email is sponsored by:
With Great Power, Comes Great Responsibility Learn to use your power at OSDN's High Performance Computing Channel
http://hpc.devchannel.org/
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to