I am not sure I understood the solution completely, let me explain my
problem again. May be I should read the books suggested.
There are 3 components a) the MDB (lets say MDB1) which I want to test, b)
the session ejb, and c) another MDB (lets say MDB2) which the session
ejb calls.
Now, if I call the extracted method in the MDB1 directly, it will make a
further call to session ejb which in turns asynchronously calls MDB2. Both
session ejb and MDB2 create records in the database. Now I want to test
that the records are being properly created. The testXXX() method will
succeed for only the records created in the session ejb and will fail for
the tests of records created in MDB2 as the MDB2 may not have been
completed. Now I have a situation where MDB1 did not fail but the test
cases shows it has failed.
Will mock objects or the suggested techniques, help me test the MDB1
completely?
Thanks
Jayaraman
"J. B.
Rainsberger" To: Cactus Users List <[EMAIL
PROTECTED]>
<[EMAIL PROTECTED] cc:
om> Subject: Re: Testing MDB
05/24/2004 08:39
PM
Please respond to
"Cactus Users
List"
[EMAIL PROTECTED] wrote:
> The problem with this approach, which I also found at
> http://marc.theaimsgroup.com/?l=cactus-user&m=100879309609213&w=2 and
tried
> is, the MDB calls a session ejb and this might again call another MDB
> (There is a complex workflow design behind that). So it may be possible
to
> make a call to the first MDB's onMessage(), but this will return back
soon
> and the testXXX() methods might fail like the previous scenario.
Presumably the MDB retrieves the Session EJB from JNDI. The standard
solution to this is this:
1. Move the code that retrieves the Session EJB to the top of the
onMessage() method.
2. Apply Extract Method to the rest of onMessage() so that the new
method takes the Session EJB remote component interface as a parameter.
3. Test the newly extracted method directly without the container.
4. Verify your deployment descriptor to make sure that you deploy the
Session EJB correctly.
See JUnit Recipes: Practical Programmer Testing Methods for more. :)
--
J. B. Rainsberger,
Diaspar Software Services
http://www.diasparsoftware.com :: +1 416 791-8603
Let's write software that people understand
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]