灵通163百科在线-实用的手机,证券免费资源网站

您现在的位置:首页 > K-JAVA资源 > JAVA游戏 >

“井字游戏” 游戏实战

教程来源:www.lt163.com     点击数:     更新时间:2018-01-11 13:41

变蝇人_Java 测试驱动开发--“井字游戏” 游戏实战

TDD 介绍

TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。

-- 百度百科


准备工具

TDD只是一种开发模式,它并没有用到新的技术。

Java : 因为它是主流的编程语言,应用广泛,相关实践也非常多。

IntelliJ-IDEA : Java 主流IDE(集成开发工具)。

JUnit : Java 主流单元测试框架,当然,你选择 TestNG 也是完全可以的。

Gradle : 构建工具。


TDD 开发模式

红灯 -- 绿灯 -- 重构” 流程是TDD的基德隆加盟骑士_资讯网石。 这个过程就像打乒乓球,快速的在测试代码和实现代码之间切换。

TDD 开的过程: 每次只考虑一个需求。首先编写一个测试,看看它是否未通过;然后编写实现这个测试的代码,运行所有测试并验证它们是否全部通过;最后,通过重构改进代码。不女镇长拍写真走红_资讯网断重复这个过程,直到成功实现所有需求。


需求

本系列实战 “井字游戏” ,这是一个非常简单的小游戏。

说明:

是一种在3*3格子上进行的连珠游戏,和五子棋比较类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X)。由最先在任意一条直线上成功连接三个标记的一方获胜。

不会玩的同学可以先去完两把:井字小游戏。


需求1

先定义边界,以及将棋子放在哪些地方非法。

可将棋子放在33棋盘上任何没有棋子的地方。

将需求分成三个测试:

如果棋子放在超出了X轴边界的地方,就引发 RuntimeException 异常。

如果棋子放在超出了Y轴边界的地方,就引发 RuntimeException 异常。

如果棋子放在已经有棋子的地方,就引发 RuntimeException 异常。


测试用例 1

默认你已经会使用 JUnit 单元测试框架了,根据上面的三个测试,我们先来完成第一个。

import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; public class TicTacToeTest { @Rule public ExpectedException exception = ExpectedException.none(); private TicTacToe ticTacToe; @Before public final void before() { ticTacToe = new TicTacToe(); } @Test public void whenXOutsideBoardThenRuntimeException() { exception.expect(RuntimeException.class); ticTacToe.play(5, 2); } }

测试调用 TicTacToe 类的 play() 方法,假设第一个参数是 x 轴,第二个参数是 y 轴,前面需求已经规定,棋盘是33的规格,所以参数必须不能小于1或大于3。
x 轴为5会引发异常。在 whenXOutsideBoardThenRuntimeException() 测试用例中,预期这被测代码会抛出 RuntimeException异常。

实现功能 1

接下来,我们要实现功能代码了,以满足测试用例通过。

public class TicTacToe { public void play(int x, int y) { if (x < 1 || x > 3) { throw new RuntimeException("X is outside board"); } } }

实现代码非常简单,创建TicTacToe 类和 play() 方法,判断 x 参数,如果小于1或大于3 将抛出 RuntimeException异常。

** 现在再次执行 测试用例 1 检查它是否运行通过。


测试用例 2

继续在 TicTacToeTest 测试类中创建将的测试用例。

…… @Test public void whenYOut女孩整天找人索吻_资讯网sideBoardThenRuntimeException(){ exception.expect(RuntimeException.class); ticTacToe.play(2,5); }

这条用例用于验证棋盘 y 轴范围抛 RuntimeException 异常。

实现功能 2

继续修改 TicTacToe 的功能代码。使 测试用例2 运行通过。

public class TicTacToe { public void play(int x, int y) { if (x < 1 || x > 3) { throw new RuntimeException("X is outside board"); }else if(y < 1 || y > 3){ throw new RuntimeException("Y is outside board"); } } }

这里针对 play()方法,增加对参数 y 的判断,如果小于1或大于3则抛出RuntimeException异常。

** 现在再次执行 测试用例 2 检查它是否运行通过。

** 另外,保证 测试用例 1 也是可以运行通过的。


测试用例 3

继续在 TicTacToeTest 测试类中创建将的测试用例。

没有相关教程
UC浏览器 最先进实用的手机端浏览器,最大限度节省页面浏览流量,点击下载
老虎地图 绿色纯免费GPS定位省流量的最佳手机地图,点击下载
网秦手机安全系列 手机杀毒防盗,防火墙,构建手机安全,点击进入
塞班精品游戏 最流行最给力的塞班S60免签名名精品游戏合集,点击进入
阿里通 手机上轻松拨打网络电话和收发短信,高音质超省话费,资费标准
爱科手机电话 国内最好的手机网络电话领先品牌,价格低廉,点击查看
愤怒的小鸟2 全民挑战超流行休闲游戏力推新作-愤怒的小鸟2,点击查看
魔力旺旺 淘宝卖家首选的交易工具

资源下载排行
文章阅读排行