私は Android アプリケーションを作成していますが、Calendar で奇妙な動作が見られるので、次のテストを作成しました。
public void testCalendar1(){
int[] months = {
Calendar.JANUARY,
Calendar.FEBRUARY,
Calendar.MARCH,
Calendar.APRIL,
Calendar.MAY,
Calendar.JUNE,
Calendar.JULY,
Calendar.AUGUST,
Calendar.SEPTEMBER,
Calendar.OCTOBER,
Calendar.NOVEMBER,
Calendar.DECEMBER,
};
for(int i = 0; i < months.length; i++){
assertEquals(months[i], i);
}
}
public void testCalendar2(){
Calendar cal = Calendar.getInstance();
for(int i = 0; i < 12; i++){
cal.set(Calendar.MONTH, i);
assertEquals(cal.get(Calendar.MONTH), i);
}
}
両方のテストに合格すると思いますが、2 番目のテストは次のエラーで失敗します。
junit.framework.AssertionFailedError: expected:<2> but was:<1>
at ...
ということで、暦月を1(2月)にするとgetメソッドは2(3月)を返すようです。誰かが以前にこのような動作を見たことがありますか、または何が原因であるかを知っていますか? それとも私は愚かなことをしただけですか?
注: これらのテストは、Android Junit テストとして Android フォンで実行されます。
編集: 2 月にのみ開催され、今日は 4 月 30 日であることに気付きました。私自身の質問に答えたようです。