您的位置:首页 > 其它

每日刷题(2015/6/22)测试象棋游戏中的boolean canMoveTo(int x, int y) 函数

2015-06-24 21:40 393 查看
We have the following method used in a chess game: boolean canMoveTo(int x, int y) x and y are the coordinates of the chess board and it returns whether or not the piece can move to that position. Explain
how you would test this method.

译文:
在象棋游戏中,我们有以下的一个函数:boolean canMoveTo(int x, int y)。 x,y是棋盘的坐标,该函数返回棋子是否能移到到那个位置。 解释一下你将如何测试这个函数?

需要做两个基本的测试类型:验证输入输出的有效性及功能性测试。

输入输出的有效性
我们需要验证输入输出以保证它们是有效的值,这意味着我们需要:

检查输入是否在棋盘内: 给函数传入负值 给函数传入大于宽度的x值 给函数传入大于高度的y值 根据具体的实现,以上情况要么返回false,要么抛出异常。

检查输出是否合法(本题目不需要,因为输出是true或者false,无所谓合不合法。)

功能性测试
理论上来说,我们应该去测试象棋棋盘的所有可能布局,但由于这个数量太大了, 这样做根本不现实。因此,我们只去测试这其中比较具有代表性的一些情况。 象棋中有6种棋子(国际象棋:王,后,车,象,马,兵),我们按照以下算法做测试:
取出6种棋子中的一个a
除了a的棋子中,取出一个b
在方向集合中取出一个方向d
用棋子a创建一个棋盘布局(放在棋盘所有可能的地方)
将b放在方向d上的一个位置
尝试移动,并检查返回值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  测试