如何区分 4 周前和 1 个月前?当我在 android 上为它编写测试代码时,我遇到了这个问题。
我认为这取决于我测试的日期。我觉得对吗?如果我的意见是正确的,那么我该如何做好或通过测试代码?
我通过测试代码的一个想法是现在保持测试日期。对我有什么想法吗?
对不起,我想我的问题不清楚。我的代码的一部分在这里。
assertEquals("a month ago", timeAgoWithAddedValue(Calendar.MONTH, -1));
private String timeAgoWithAddedValue(int field, int value) {
Calendar cal = Calendar.getInstance();
cal.add(field, value);
return timeAgo(cal.getTime());
}
public static final long WEEK_UNIT = DAY_UNIT * 7;
public static final long MONTH_UNIT = 2629746000L; // I found this value online, 1 Gregorian month -> ms
public static final long YEAR_UNIT = 31556952000L; // I found this value online, 1 Gregorian year -> ms
public String timeAgo(Date date) {
long now = Calendar.getInstance().getTimeInMillis();
long sinceNowInMillis = now - date.getTime();
...
if (sinceNowInMillis < MONTH_UNIT) {
long weeks = sinceNowInMillis / WEEK_UNIT;
// return proper ago string with weeks
}
if (sinceNowInMillis < YEAR_UNIT) {
long months = sinceNowInMillis / MONTH_UNIT;
// return proper ago string with months
}
...
}
几个月前我写了代码,当时它成功了。但是今天测试代码失败了。因为代码是预期的4 weeks ago
。我想知道我的代码是错误的还是问题取决于周长,所以这是自然问题?