如何为这种方法编写单元测试用例?

时间:2012-07-20 07:01:09

标签: java junit

public String createUser() {

    Session session = HibernateUtility.getSession();
    Transaction tx = session.beginTransaction();

    session.save(this);
    tx.commit();
    session.close();

    return "accountCreated";

}

如何为此方法编写单元测试用例?

1 个答案:

答案 0 :(得分:3)

很难对包含对静态方法的调用的代码进行单元测试,例如HibernateUtility.getSession()

您可以考虑注入Session实例(可能是通过向createUser()方法添加参数,或者通过为包含此方法的对象提供可用于获取{{1}的Session Factory对象实例)。然后,您可以使用Mockito或类似的框架为该方法提供模拟Session对象,并验证对其进行的预期调用。

Session

使用Mockito,单元测试可能如下所示:

public String createUser(Session session) {
    Transaction tx = session.beginTransaction();

    session.save(this);
    tx.commit();
    session.close();

    return "accountCreated";
}