gpt4 book ai didi

date - 带有新日期的 Junit()

转载 作者:行者123 更新时间:2023-12-04 12:00:09 25 4
gpt4 key购买 nike

当我有以下方法时,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();
}

在您的测试类中,使用模拟或 stub 日期覆盖如下类。
<ClassUnderTest> classUnderTest = new <ClassUnderTest> () {
@Override
Date getDate() {
return mockDate;
}
}

通过这种方式,您可以轻松断言日期值,因为它将被剔除。

关于date - 带有新日期的 Junit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5092017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com