Unit Testing EJB3 + Hibernate Using OpenEJB + TestNG + jMockIt - Part I

Finally I found a set of tools which made my unit testing much more easier! In this article I am taking you through my unit testing strategies and how I managed to write unit test cases without writing a bunch of code.

The following are some of the technologies I use in my application:

   1. EJB 3.0
   2. Hibernate 3.0
   3. JBoss 5.0.1
   4. JMS (JBoss Messaging)

Let me explain in detail how OpenEJB + TestNG + jMockIt combination helped me in unit testing my code.

1. Defining a model class (UserInfo.java)
   public class UserInfo implements java.io.Serializable {
        private String loginId;
 private String name;
 public String getLoginId() {
  return this.loginId;
 public void setLoginId(String loginId) {
  this.loginId = loginId;
 public String getName() {
  return this.name;
 public void setName(String name) {
  this.name = name;

2. Defining the Hibernate hbm file (UserInfo.hbm.xml)
       <class name="com.sample.model.UserInfo" table="USER_INFO">
           <id name="loginId" type="string">
               <column name="LOGIN_ID" length="32" />
               <generator class="assigned" />
           <property name="name" type="string">
               <column name="NAME" length="50" />

3. Data Access Object for UserInfo (UserInfoHibernateDAO.java)
   public class UserInfoHibernateDAO {
 public UserInfo getUserInfo(String loginId){
    Session session = HibernateUtil.getSessionFactory().openSession();
    return (UserInfo)session.get(UserInfo.class, loginId);
4. Creating a stateless EJB
   public class HelloBean implements Hello {
 public String getUserName(String loginId){
    UserInfoHibernateDAO hibernateDAO = new UserInfoHibernateDAO();
    UserInfo userInfo = hibernateDAO.getUserInfo(loginId);
    return userInfo.getName();
Unit Testing EJB3 + Hibernate Using OpenEJB + TestNG + jMockIt - Part II
Part II


Popular posts from this blog

Induction Cooker Showing an Error Code? Induction Cooker Error Codes Explained

How to Child Lock Channels on Airtel Digital TV

LICHFL - Generating Home Loan Statements Online