判定表:

| 输入 | 输出 | |------|------| | 2021/1/31 | 2021/2/1 | | 2021/2/28 | 2021/3/1 | | 2020/2/29 | 2020/3/1 | | 2020/12/31 | 2021/1/1 | | 2022/2/1 | 2022/2/2 |

Junit代码:

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class NextDayTest {
    
    @Test
    public void testNextDay() {
        assertEquals("2021/2/1", NextDay("2021", "1", "31"));
        assertEquals("2021/3/1", NextDay("2021", "2", "28"));
        assertEquals("2020/3/1", NextDay("2020", "2", "29"));
        assertEquals("2021/1/1", NextDay("2020", "12", "31"));
        assertEquals("2022/2/2", NextDay("2022", "2", "1"));
    }

    public String NextDay(String Y, String M, String D) {
        int year = Integer.parseInt(Y);
        int month = Integer.parseInt(M);
        int day = Integer.parseInt(D);
        int nextYear = year;
        int nextMonth = month;
        int nextDay = day + 1;

        if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 30) {
            nextMonth++;
            nextDay = 1;
        } else if (month == 2) {
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                if (day == 29) {
                    nextMonth = 3;
                    nextDay = 1;
                }
            } else {
                if (day == 28) {
                    nextMonth = 3;
                    nextDay = 1;
                }
            }
        } else if (day == 31) {
            if (month == 12) {
                nextYear++;
                nextMonth = 1;
            } else {
                nextMonth++;
            }
            nextDay = 1;
        }

        return nextYear + "/" + String.format("%02d", nextMonth) + "/" + String.format("%02d", nextDay);
    }
}
``
编程实现NextDay 函数。Y、M、D分别存储当前的年、月、日String NextDayString Y String M String D根据当前日期输出下一天的日期。现在要测试NextDay函数用判定表方法来设计相应的测试用例并编写对应Junit代码进行测试。可以适当参照互联网搜索获得资料进行判定表方法的理解

原文地址: https://www.cveoy.top/t/topic/cy60 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录