2012-01-04 60 views
0

我正在写一个游戏。我在测试它时遇到了一些麻烦。如何测试涉及多个步骤以达到测试特定阶段的应用程序?

一个简单的例子涉及到这样的事情:

  1. 大家加入游戏
  2. 每个人都按就绪。一旦所有人都准备好了。比赛开始
  3. 疯狂的事情发生

我没有任何麻烦测试1和2。但是,我为了实现测试三,我要叫1和2.然后,随后根据测试的下一个项目游戏流程也将涉及测试1,2和3。

这是什么样的测试?我知道这不是单元测试。这听起来有点像集成测试。

什么是测试这样的应用程序的正确方法?

PS我在nodejs上写这个程序。对我来说,一个好的框架可以让我做这样的事情? (我目前使用的是nodeunit,它并没有真正允许我调用以前的测试用例而不会引发错误)。

回答

1

第一个单元测试它。单元测试的难点在于告诉你分离责任。你描述一个状态。使用状态模式实现。更好的代码和功能可以或不可以在任何状态下使用(例如,每个人都已经准备好了......游戏状态已经开始),并且完全独立地进行了测试。所以你最终得到很好的功能块。

现在......一旦你的'状态引擎'和状态被测试,你想连接它们。这是集成测试(假设您未测试整个应用程序)。集成测试的目的是测试子系统的布线,而不是所有的功能,而不是所有的应用。

+0

好吧,清除,我绝对不想做集成测试,因为它不测试我想要的。我不是整合子系统 - 我只是不断地在测试中调用测试用例,以达到测试的正确状态。 – disappearedng 2012-01-04 07:33:43

+0

因此将集成测试放在一边。如果使用状态模式,则不需要在测试中调用测试用例。我认为你在测试中的呼叫测试走到编码到一个状态。我认为这将变得难以维持。随着状态模式,每个状态都是它自己的类。在你的情况下,你至少有三个状态:“加入”,“开始”,“发生疯狂事情”。你可以单元测试“开始”转换为“发生了什么疯狂事件”,你可以单元测试疯狂的东西。 – 2012-01-05 07:38:00

相关问题