当我有以下方法时,junit 测试会是什么:
@Override
public void saveLastSuccesfullLogin(final User user) {
gebruiker.setLastLogin(new Date());
storeUser(user);
}
子方法storeUser:
@Override
public void storeUser(final User user) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.merge(user);
em.getTransaction().commit();
em.close();
}
我遇到的问题是为实体用户设置日期然后存储。我使用 junit 和 easymock。
尝试将 new Date() 拉入具有默认访问说明符的方法中,如下所示
@Override
public void saveLastSuccesfullLogin(final User user) {
gebruiker.setLastLogin(getDate());
storeUser(user);
}
Date getDate() {
return new Date();
}
在您的测试类中,使用模拟或存根日期覆盖该类,如下所示。
<ClassUnderTest> classUnderTest = new <ClassUnderTest> () {
@Override
Date getDate() {
return mockDate;
}
}
通过这种方式,您可以轻松断言日期值,因为它将被删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)