Sha*_* D. 15 java tdd junit unit-testing mocking
我正在为我正在进行的项目中的某些实用程序类设置单元测试,其中一个类(包含许可信息)有一个方法可以根据当前时间做一些确定.
即许可证包含到期日期,许可证字符串验证该日期,但是查看许可证是否过期的实际逻辑基于当前时间.
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 );
}
Run Code Online (Sandbox Code Playgroud)
所以,我不知道该怎么做,因为'new Date()'不是一个静态的标准.
其他人通常会做什么时间条件的测试?
Jon*_*eet 24
绝对嘲笑new Date().
Clock使用getCurrentTime()方法或类似方法创建接口.这样你就可以FakeClock进行测试SystemClock,使用System.currentTimeMillis()什么或者其他什么.
我已经多次这样做了 - 它运作得非常好.这也是合乎逻辑的 - 实际上你需要一个"当前时间服务",因此应该像任何其他依赖项一样注入.
| 归档时间: |
|
| 查看次数: |
3678 次 |
| 最近记录: |