285
社区成员
项目 | 内容 |
---|---|
所属课程 | 软件工程 https://bbs.csdn.net/forums/nsicdse?category=0&typeId=16867 |
作业简介 | 开发新猜数字小游戏,使用Git进行源码管理,使用单元测试工具JUnit对各个方法进行单元测试 |
作业目的 | 熟悉Git、码云、JUnit基本使用方法,单元测试设计以及回顾Java的基本语法 |
截止时间 | 2021年11月10日23:59 |
参考资料 | 见下文 |
在个人项目(任务1)我们已经安装好了JDK、IDE、Git,并学会了如何使用Git和码云开发一个小游戏。本次作业我们将在此基础上开发一个新的猜数字小游戏,同时练习使用JUnit来进行单元测试已保证程序的质量。
Eclipse中使用JUnit教程
IDEA中使用JUnit
单元测试用例设计方法
新猜数字游戏 https://v.youku.com/v_show/id_XNDkxNzE5NTA0MA==.html ,视频密码:beiruanjsj2020
在IDE中创建项目 NGuessNumber
使用Git对项目进行初始化
git init .
创建代码仓库.gitignore
文件.gitignore
中使得Git不会追踪这些项目配置文件。如果使用的IDE是Eclipse,配置文件可能有:.settings
,.classpath
,.project
。如果使用的IDE是IDEA,配置文件可能有:.idea
,*.iml
在项目中创建 NGuessNumber.java
程序文件,并使用 git add
命令使Git开始追踪该文件,随后使用 git commit
命令提交新增的 NGuessNumber.java
文件。注意提交代码时的说明信息简要准确
在项目中配置好JUnit后,创建NGuessNumberTest.java
程序文件,并使用git add
命令使Git开始追踪该文件,随后使用 git commit
命令提交新增的 NGuessNumberTest.java
文件。此文件用于撰写测试代码。
在码云中创建远程仓库,仓库名称自拟
在本地仓库中使用 git remote add
命令将远程仓库信息添加到本地
在 NGuessNumber.java
中创建 generateAnswer
方法,它的功能是:随机生成4个0-9之间的不重复的整型数作为答案并返回的功能。注意:
在 NGuessNumberTest.java
中创建创建 generateAnswerTest
方法,该方法调用 generateAnswer
方法生成答案数字。请使用断言(如: assertEquals
)检查答案数字数量是否为4,其中是否无重复数字,以及数字是否都在0-9之间。
右键点击 NGuessNumberTest.java
,选择 Run As
--> JUnit Test
。如果运行结果显示全部测试均通过,使用 git commit
命令将 NGuessNumber.java
和 NGuessNumberTest.java
均提交到代码仓库。若测试结果显示有未通过的测试,根据测试提示,检查哪项未通过,以此诊断 NGuessNumber.java
中的generateAnswer
方法何处有错误,修改错误后再次重新测试直至通过测试后提交代码至仓库。注意:要保证测试代码正确,否则即使generateAnswer
方法正确,你也无法测试出它是正确的。
在 NGuessNumber.java
中创建 getPlayerInput
方法,它的功能是:接收玩家输入的4个数字并返回。
在 NGuessNumberTest.java
中创建getPlayerInputTest
方法,该方法调用 getPlayerInput
方法获取用户输入的数字。请使用断言检查玩家猜测的数字数量是否为4。
参照第10步,执行单元测试代码,若通过则提交到仓库,若不通过,则找到问题并修复后再次测试,直到测试通过后将代码提交到仓库。
在 NGuessNumber.java
中创建 compareGuessAnswer
方法,它的功能是:比较玩家猜测和答案后返回提示信息。
对compareGuessAnswer
方法进行测试,测试用例自行设计,测试通过后使用git commit
命令将代码提交到仓库。
实现isWin
方法,它的功能是:根据提示信息中A的数量判断玩家是否获胜,如果获胜返回true,否则返回false。
对isWin
进行测试,测试用例自行设计,测试通过后将相应代码提交到仓库。
在NGuessNumber.java
的主方法中调用生成答案方法,生成一个答案。创建一个单次游戏循环,在这个循环中,玩家猜测数字,计算机对比答案和玩家猜测,然后判断玩家是否获胜,如果没有获胜,打印提示信息后,再次接收玩家猜测。若获胜,打印获胜信息,循环结束。
经手动运行测试正常后,将代码提交到本地仓库。
在上一步的循环外再加一层循环用以判断玩家是否决定再玩一局游戏。经手动测试正确后,将代码提交到本地仓库。
使用git push
将本地仓库代码推送到远程仓库,检查远程仓库是否成功更新。
注意:我们也可以在IDE中集成源码管理工具,如:Git,下面是在IDE中集成源码管理工具的教程,感兴趣的同学可以尝试:
拓展任务:
如果你很轻松的就完成如上任务,可以尝试如下任务:
博客请使用Markdown语法撰写,教程如下: Markdown教程 https://www.runoob.com/markdown/md-tutorial.html
按照如下格式在博客开头给出作业信息
项目 | 内容 |
---|---|
所属课程 | 课程名称 https://courselink.com/ |
作业简介 | 作业简介描述 |
作业要求 | 作业名称及链接 https://homeworkcriteria.com/ |
作业目的 | 作业目的描述 |
参考资料 | 参考资料名称及链接 http://reference.com/ |
学生姓名 | 此处填写姓名 |
代码仓库 | 仓库名称及链接 http://repository.com/ |
描述完成任务过程中遇到的困难、问题以及这些困难和问题哪些已经解决了,哪些尚未解决,已经解决的困难和问题是如何解决的
描述通过这个作业学习到了什么
如果还有其他问题可以在此处提出
本次作业满分42分。
作业若违反 诚信守则 https://docs.qq.com/doc/DSnladnN2Y0xMaldn?createTS=1602816788355&templateId=31227&new=1 ,如雷同等,倒扣本次作业成绩,根据如下原则处理:
有如下情况,一律0分:
详细评分标准
评分项目 | 评分标准 |
---|---|
生成答案功能正确 | 正确得3分 |
接收用户输入功能正确 | 正确得1分 |
比较答案和玩家猜测后给反馈功能正确 | 正确得5分,否则不得分 |
检测玩家是否获胜功能正确 | 正确得2分,否则不得分 |
可根据玩家选择重玩一局或结束游戏功能正确 | 正确得1分,否则不得分 |
生成答案功能测试代码正确 | 正确得3分 |
接收用户输入功能正确测试代码正确 | 正确得1分 |
比较答案和玩家猜测后给反馈功能测试代码正确 | 根据有效测试用例数量给分,1个1分,最多不超过5分 |
检测玩家是否获胜功能测试正确 | 根据有效测试用例给分,1个1分,最多不超过2分 |
仓库中的提交记录数量 | 3次得1分,4次得2分,5次以上得3分,6次得4分,7次得5分 |
完成博客撰写任务2 | 有即得1分 |
完成博客撰写任务3 | 有即得1分 |
完成博客撰写任务4 | 有即得1分 |
为游戏添加了猜测次数限制功能 | 该功能存在且可以正常使用得3分 |
为游戏添加了界面 | 可以通过界面玩游戏得5分 |
在码云仓库中创建了发行版 | 可以从码云仓库下载发行版3分 |