New*_*bie 1 java junit unit-testing hibernate
在我正在进行的一个项目中,我使用 Hibernate 与数据库进行交互。我正在尝试测试 Hibernate 类中的方法。我遇到了两件事。
1. Mockito
2. H2-In Memory for testing
Run Code Online (Sandbox Code Playgroud)
这是我的班级
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();
}
}
Run Code Online (Sandbox Code Playgroud)
来测试上面的类,这是一个很好的方法。我应该使用模拟来编写 Junit 测试还是使用内存数据库进行测试。我不想用我用于开发的数据库来测试它,因为测试用例会损坏它。
小智 5
通常在企业中您会编写两种类型的测试用例。在一个单元测试用例中,您将使用 Mockito 来删除诸如存储库对象等对象。其想法是,即使数据库不可用,您的功能也是可测试的。另一组是集成测试用例。实际上,这将连接到支持中的所有资源等以进行端到端测试。您可以使用 Maven 的 Surefire 插件在运行时运行测试用例。名称以“Test”结尾的类被视为单元测试用例,以“IT”结尾的类被视为集成测试用例。示例(“SomeTest”,SomeIT)。要回答您的问题,您需要 Mockito 和 H2,其中 H2 是您应用程序的资源/后端
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |