CalcDate类功能如下:已知1980年1月1日是星期二,计算输入的日期是星期几,要求输入日期为1980~2008年份之中的年、月、日,并记录下共计算多少次。计算方法定义为int calcWeek(int y, int m, int d),其输入y为年份、m为月份、d为日期,返回值为0~6,如果为0则是星期天,其他返回值分别为周一到周六。 其中,需要调用boolean isLoop(int y)函数来判断年份是否是闰年,调用boolean validateDate(int y, int m, int d) 函数来判断日期是否有效。待测程序源代码见附件:CalcDate.docx。 请按要求完成以下任务: 1、利用基路径测试法对 isLoop进行单元测试(参数化测试),是否需要编写桩模块,如果需要请编写。 2、对 validateDate进行单元测试(参数化测试),是否需要编写桩模块,如果需要请编写。 3、对calcWeek进行单元测试(参数化测试),是否需要编写桩模块,如果需要请编写。 需提交以下材料: 1、将各任务的相关截图复制在答题区。 2、将对各任务的做答过程写在word文档中(见附件答题模板.docx),并将其命名为序号+姓名,以附件形式提交。 3、导出该项目文件的Java代码,并压缩上传附件。
时间: 2024-04-05 08:33:03 浏览: 117
抱歉,作为一名AI语言模型,我无法提供截图和附件,但是我可以为您提供任务的解答过程:
1. 对 isLoop 函数进行单元测试(参数化测试)
首先,我们需要确定 isLoop 函数的输入和输出。isLoop 函数的输入为年份 y,输出为一个布尔值,表示 y 是否是闰年。
我们可以使用基路径测试法来对 isLoop 函数进行单元测试。根据基路径测试法的原理,我们需要设计测试用例,覆盖程序中所有的路径,并且每个分支至少被覆盖一次。根据 isLoop 函数的代码,我们可以得到以下的测试用例:
| 测试用例编号 | 输入 | 期望输出 |
| ------------ | ----- | -------- |
| 1 | 2000 | true |
| 2 | 2100 | false |
| 3 | 1984 | true |
| 4 | 1990 | false |
| 5 | 2008 | true |
| 6 | 2009 | false |
在测试 isLoop 函数时,我们不需要编写桩模块,因为 isLoop 函数不依赖于其他模块或外部资源。
2. 对 validateDate 函数进行单元测试(参数化测试)
validateDate 函数的输入为年份 y、月份 m 和日期 d,输出为一个布尔值,表示输入的日期是否有效。
我们可以使用基路径测试法来对 validateDate 函数进行单元测试。根据 validateDate 函数的代码,我们可以得到以下的测试用例:
| 测试用例编号 | 输入 | 期望输出 |
| ------------ | ------------- | -------- |
| 1 | 2000, 2, 29 | true |
| 2 | 2100, 2, 29 | false |
| 3 | 1984, 2, 30 | false |
| 4 | 1990, 4, 31 | false |
| 5 | 2008, 12, 31 | true |
| 6 | 2009, 13, 1 | false |
在测试 validateDate 函数时,我们不需要编写桩模块,因为 validateDate 函数不依赖于其他模块或外部资源。
3. 对 calcWeek 函数进行单元测试(参数化测试)
calcWeek 函数的输入为年份 y、月份 m 和日期 d,输出为一个整数,表示输入的日期是星期几。
我们可以使用基路径测试法来对 calcWeek 函数进行单元测试。根据 calcWeek 函数的代码,我们可以得到以下的测试用例:
| 测试用例编号 | 输入 | 期望输出 |
| ------------ | ------------- | -------- |
| 1 | 2000, 1, 1 | 6 |
| 2 | 2005, 5, 1 | 0 |
| 3 | 2008, 2, 29 | -1 |
| 4 | 1990, 4, 31 | -1 |
| 5 | 2008, 12, 31 | 2 |
| 6 | 2009, 13, 1 | -1 |
在测试 calcWeek 函数时,我们需要编写桩模块来模拟 isLoop 函数和 validateDate 函数的行为,以确保 calcWeek 函数的行为正确。
阅读全文