在我的项目中,我正在创建一个与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.");
任何人都可以提出如何在不使用单元测试破坏数据库的情况下测试其余服务器方法的想法吗?