测试Jersey Hrestnate与Hibernate交互以将数据持久保存到db

时间:2017-04-21 23:23:14

标签: java hibernate rest jpa junit

在我的项目中,我正在创建一个与hibernate dao类交互的rest api服务器,并将数据保存在db中。我想测试这个类,但我不想使用junit单元测试来破坏开发数据库。

这是我的代码:

RestServer.java

 public class UserDAOImpl implements UserDAO {
        public static final Logger LOG = LoggerFactory.getLogger(UserDAOImpl.class);
        private static Session session;

        public UserDAOImpl() {

        }

        private static void beginSession() {
            session = DbUtils.getSessionFactory().openSession();
            session.beginTransaction();
        }

        @Override
        public void addUser(String username, String password) {
            beginSession();
            addUser(username, password, session);
            session.close();
        }

        public void addUser(String username, String password, Session session) {
            if (username == null || password == null) {
                throw new IllegalArgumentException("Please check the credentials");
            }
            String encryptedPassword = Utils.encrypt(password);
            User user = new User(username, encryptedPassword);
            try {
                session.save(user);
                session.getTransaction().commit();
            } catch (SQLGrammarException e) {
                session.getTransaction().rollback();
                LOG.error("Cannot save user", e);
            }
        }

UserDAO.java

LocalDate born = LocalDate.of(1990, Month.SEPTEMBER, 30);
Period myAge = Period.between(born, LocalDate.now());
System.out.println("My age is: "+myAge.getYears()+" years "+myAge.getMonths()+" months "+myAge.getDays()+" days.");

任何人都可以提出如何在不使用单元测试破坏数据库的情况下测试其余服务器方法的想法吗?

0 个答案:

没有答案