在我正在开发的项目中,我使用Hibernate与数据库进行交互。我试图测试Hibernate类中的方法。我遇到了两件事。
1. Mockito
2. H2-In Memory for testing
这是我的班级
UserDAOImpl.java
public class UserDAOImpl implements UserDAO {
public static final Logger LOG = LoggerFactory.getLogger(UserDAOImpl.class);
private static Session session;
private static void beginSession() {
session = DbUtils.getSessionFactory().openSession();
session.beginTransaction();
}
@Override
public void addUser(String username, String password) {
User user = new User(username, password);
beginSession();
session.save(user);
session.getTransaction().commit();
session.close();
}
}
要测试上面的类,这是一个很好的方法。 我应该使用mocking编写Junit测试或使用内存数据库进行测试。 我不想用我用于开发的数据库测试它,因为测试用例会破坏它。
答案 0 :(得分:2)
通常在企业中,您可以编写两种类型的测试用例。一个单元测试案例,您将使用Mockito来存储像存储库对象等对象。这个想法是即使数据库不可用,您的功能也是可测试的。另一组是集成测试用例。实际上,这将连接到支持的所有资源等,以进行端到端测试。您可以使用Maven的surefire插件在运行时运行测试用例。名称以" Test"被认为是一个单元测试案例,结束于" IT"是一个集成测试用例。示例(" SomeTest",SomeIT)。要回答你的问题,你需要Mockito和H2,其中H2是你的应用程序的资源/后端