Solved

Junit - how do i use the Junit to test for ejb function

Posted on 2006-11-21
11
388 Views
Last Modified: 2013-11-24
I have a ejb applicaiton used to insert the record into the database. It completed.

Now i want to use junit to test for inserting a record.

For my i dont have any idea how to do it.

Please advise.

Thanks
0
Comment
Question by:LeanMoreTryMore
  • 6
  • 5
11 Comments
 
LVL 16

Expert Comment

by:suprapto45
ID: 17992705
For me,

Last time, when I was using EJB, I used http://www.junitee.org/ and it works great.

http://www.junitee.org/tutorial.html

However, other may have other suggestions so you may be waiting for alternative solution

David
0
 

Author Comment

by:LeanMoreTryMore
ID: 17993021
Thanks. but there is no sample for testing ejb.

please help
0
 

Author Comment

by:LeanMoreTryMore
ID: 17993061
I need to test the CMP entity bean for inserting a record into the database

The CMP entity bean contains the following classes

CustomerAccount.java
CustomerAccountBean.java
CustomerAccountHome.java
CustomerAccountLocal.java
CustomerAccountLocalHome

==
The IDE create the Junit template like below:

package com.fujitsu.au;

import junit.framework.TestCase;

public class TestInsert extends TestCase {

      public TestInsert(String arg0) {
            super(arg0);
      }

}

===
Any idea what else i need to add to the above TestInsert
0
 
LVL 16

Expert Comment

by:suprapto45
ID: 17993063
Hi,

The URL that I gave you is the sample to test on EJB.
http://www.junitee.org/tutorial.html

Basically, you need to create one more web application to test the EJB. If you need more detailed of the steps, look at
http://www.junitee.org/usersguide.html

It may be a bit complicated to set up but should be doable.

David
0
 
LVL 16

Expert Comment

by:suprapto45
ID: 17993086
What IDE are you using?
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 

Author Comment

by:LeanMoreTryMore
ID: 17993091
SAP NetWeaver (shit product)
0
 

Author Comment

by:LeanMoreTryMore
ID: 17993109
Can I test without creating the web page?

I remember when I was at Sun's J2EE course, they can test the EJB function before creating web page.

like below: ( From sun's j2ee course I attented). But when i do the same thing, it does not work from within the IDE

Test for Searching
============
package bank;

import javax.naming.*;
import javax.rmi.*;
import java.util.*;

public class CustomerTest {

  public static void main(String [] args) {
    try {
      Hashtable props = new Hashtable();
      props.put ("java.naming.factory.initial",
                 "com.sun.jndi.cosnaming.CNCtxFactory");
      props.put ("java.naming.provider.url",
                 "iiop://localhost:3700");
      Context c = new InitialContext(props);

      Object obj = c.lookup("ejb/Customer");
      CustomerHome customerHome =
        (CustomerHome) PortableRemoteObject.narrow(obj, CustomerHome.class);

      Customer cust = customerHome.findByPrimaryKey(new Integer(1));
      System.out.println("firstname: " + cust.getFirstname());
      System.out.println("lastname: " + cust.getLastname());
      System.out.println("address: " + cust.getAddress());
      System.out.println("phone: " + cust.getPhone());
      System.out.println("balance: " + cust.getBalance());
      cust.setBalance(99.00);
      System.out.println("new balance: " + cust.getBalance());

      Collection customers = customerHome.findByBalance(50);
      Iterator it = customers.iterator();
      while(it.hasNext()) {
        cust = (Customer) it.next();
        System.out.println(cust.getFirstname());
      }
    } catch (Exception e) {
      e.printStackTrace();
    }

  }

}
0
 
LVL 16

Expert Comment

by:suprapto45
ID: 17993139
>>"SAP NetWeaver (shit product)"
Grr...never used that...can't really help on this.

>>"like below: ( From sun's j2ee course I attented). But when i do the same thing, it does not work from within the IDE"
It is not JUnit but it is a simple java class that called EJB and do the necessary invokation.

Give me a sec....
0
 
LVL 16

Accepted Solution

by:
suprapto45 earned 400 total points
ID: 17993207
I can't really help you much on this as I have limited knowledge of your IDE.

>>"I remember when I was at Sun's J2EE course, they can test the EJB function before creating web page."
This could be a good starting point to you albeit it is not JUnit. Try to run it as a simple Java application. The error may come out that you cannot find the EJB properly.

The good sample of JUnit is
http://www.laliluna.de/eclipse-junit-testing-tutorial.html

But that is for Eclipse :(
0
 

Author Comment

by:LeanMoreTryMore
ID: 17999400
When i compile the below, it says "junit.framework never use" WHY.



import junit.framework.TestCase;
import java.rmi.RemoteException;
import java.util.Date;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;

import com.fujitsu.au.servicerequest.util.ServiceRequestModel;
import com.fujitsu.au.servicerequest.util.ServiceRequestException;
import com.fujitsu.au.servicerequest.ServiceRequestProcessorHome;
import com.fujitsu.au.servicerequest.ServiceRequestProcessor;

import junit.framework.TestCase;

public class TestInsert extends TestCase {

        protected ServiceRequestProcessor sr;

          public TestInsert(String name) { super(name); }

            protected void setUp() throws Exception {
                  Context jndiContext = new InitialContext();
                  Object einRef = jndiContext.lookup("java:comp/env/ejb/ServiceRequestProcessorBean");
                  ServiceRequestProcessorHome home =
                         (ServiceRequestProcessorHome)PortableRemoteObject.narrow(einRef,ServiceRequestProcessorHome.class);
                  this.sr = home.create();
            }

            protected void tearDown() throws Exception      {
                  this.sr = null;
            }

        public void testInsertRec() throws RemoteException, ServiceRequestException {            
              Date todayDate = new Date();
                  ServiceRequestModel srRec = this.sr.saveServiceRequest("DOR-20061123-01",
                                                                         "David Smith",
                                                                         "Address Line 1",
                                                                         "Address Line 2",
                                                                         "Suburb",
                                                                         "Sydney",
                                                                         "2000",
                                                                         "Australia",
                                                                         "David.Smith@yahoo.com",
                                                                         "My test Message",
                                                                         "Submit",
                                                                         "HELLO",
                                                                         todayDate,
                                                                         "David");
        }
}
0
 
LVL 16

Expert Comment

by:suprapto45
ID: 18000378
>>"When i compile the below, it says "junit.framework never use" WHY."
Can you post the full stack trace of the exception?

David
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
I had a project requirement for a displaying a user workbench .This workbench would consist multiple data grids .In each grid the user will be able to see a large number of data. These data grids should allow the user to 1. Sort 2. Export the …
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
The viewer will learn how to implement Singleton Design Pattern in Java.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now