处理具有当前时间条件的单元测试
2022-09-03 04:17:07
我正在尝试为我正在处理的项目中的某些实用程序类设置单元测试,其中一个类(包含许可信息)有一个方法,可以根据当前时间进行一些确定。
即许可证包含到期日期,许可证字符串验证该日期,但查看许可证是否过期的实际逻辑基于当前时间。
public boolean isValid()
{
return isLicenseStringValid() && !isExpired();
}
public boolean isExpired()
{
Date expiry = getExpiryDate();
if( expiry == null ) {
return false;
}
Date now = new Date();
return now.after( expiry );
}
所以,我不知道该怎么办,因为“new Date()”不是一个静态标准。
- 我是否应该费心去测试'isValid',而只是分别测试'isLicenseStringValid()'和'getExpiryDate()'函数?
- 我是否只是在测试中使用许可证密钥,并且过期时间很长,这样我就会在过期时切换作业?
- 我是否尝试将“new Date()”模拟为某些“getCurrentTime()”方法,以便我可以伪造现在的时间?
其他人通常如何处理时间条件的测试?