2015-05-12 69 views
1

我很难决定如何单元测试我为游戏写的一组类。我正在研究Player抽象类,并且已经写了一些我需要的单元测试的正确性的方法,但Player仍然是抽象的,我还没有创建实现,但它依赖于其他尚未实现的类。有没有人有如何测试这个想法?抽象类中实现的单元测试方法没有具体的实现

请注意,thees方法只是实用方法,不需要执行Player的工作,但将它们带出课程似乎是错误的,因此我可以测试它们。

+0

您可以使用像mockito一样的模拟框架来测试您的抽象类的方法: http://stackoverflow.com/questions/1087339/using-mockito-to-test-abstract-classes –

+0

那些方法可以静态的?他们是否应该在球员中存在?如果你将数据从函数中分离出来,更容易进行单元测试 –

+0

@CarlosBribiescas查看我对McMonster答案的评论。我将如何从功能中分离数据?大多数玩家围绕棋盘/游戏移动玩家。 –

回答

0

最短的答案是,你正在从错误的一端接近问题。从简单的工作开始,然后你就可以测试它。在开发程序时添加抽象,不要从抽象开始,因为在你做之前你不会知道你真正需要什么。

此外,如果您有实际上并不依赖于您的播放器实现的实用方法,那么这些显然不应该是播放器类的一部分。

+0

嗯,我需要一个抽象因为我最终会得到2-3种不同类型的球员。同样,尽我所知,这些方法属于'Player'类,不属于静态帮助器,因为许多非抽象方法都使用它们,并且它们永远不会被另一个类使用。 –

+1

从最简单的播放器实现开始,添加基本测试并在需要时编写抽象代码。有经验的开发人员有时候从头开始考虑架构,但这很少产生好的结果。从简单的实现开始并增加复杂性比从一些预先设计的体系结构开始并使其适应需求更容易。 – McMonster

+0

听起来有点痛苦开始一个项目,并给它的基本功能,然后重写它以匹配你的架构...听起来像我有一种方法去达到“经验丰富的开发人员”的地位。 :)(+1) –

3

如果有问题的方法确实对这个测试对象没有任何操作,只需创建一个名为或匿名的子类,该子类具有抽象方法的空主体。