Actionscript 3 如何使用相同的先决条件数据来测试大型应用程序的多个模块?

Actionscript 3 如何使用相同的先决条件数据来测试大型应用程序的多个模块?,actionscript-3,unit-testing,flexunit,flexunit4,Actionscript 3,Unit Testing,Flexunit,Flexunit4,我正在用actionscript做一个定制游戏。该应用程序有几个模块。该应用程序是数据密集型的。为了启动应用程序,您需要加载许多其他swf、JSON等。我现在不想测试UI位。我想测试的是: 没有模块崩溃 我得到了理智的回答 我不关心UI和视觉异常 我想为模块和单独的测试类编写单独的测试套件。要更有条理 问题: 为了测试最简单的函数,我需要加载X,Y,Z数据。十、 Y、Z数据对于所有模块都是通用的 如何编写不同的测试类和套件,只预加载一次数据,并在整个测试中使用该数据副本。大多数数据在测试过程

我正在用actionscript做一个定制游戏。该应用程序有几个模块。该应用程序是数据密集型的。为了启动应用程序,您需要加载许多其他swf、JSON等。我现在不想测试UI位。我想测试的是:

  • 没有模块崩溃
  • 我得到了理智的回答
我不关心UI和视觉异常

我想为模块和单独的测试类编写单独的测试套件。要更有条理

问题:

为了测试最简单的函数,我需要加载X,Y,Z数据。十、 Y、Z数据对于所有模块都是通用的


如何编写不同的测试类和套件,只预加载一次数据,并在整个测试中使用该数据副本。大多数数据在测试过程中不会发生更改。

我通常会为我需要的每个数据对象类创建一个或多个测试版本,这些数据对象类是数据对象的一个子类,并填写了所有属性

所以在[Before]方法中,我可以这样设置:

testVO = new TestMyVO();
在测试用例中:

myObjectThatNeedsAVO.myVO = testVO;

所以所有需要MyVO的测试用例,我可以重用TestMyVO。如果我需要倍数,我可能会创建一个工厂,可以创建一个,然后调用一个我特别需要行使任何我正在行使。

你应该考虑重新思考你的战略,除非它真的是你想要测试的数据,而不是游戏逻辑。你没有说任何关于上下文的内容,所以我假设有多个带有游戏逻辑的模块。要单独测试每个模块,通常最好模拟所有依赖项,一次只测试一个模块的逻辑。双精度测试中包含有效结果的有限数据集以及所有边缘情况和故障的每个数据集就足够了。您不需要加载等-这些是不同的功能,应该在单独的测试中测试!测试所需的数据集非常大。我不想做模拟数据。而是使用真实数据并从服务器加载。问题是一旦加载了数据,我如何在不同的测试类中重用它,而不是在每个测试类中初始化它。不,问题是:为什么要在测试中使用实时数据?您说过您的测试应该证明您的模块是正确的——为此,您应该使用模拟数据。另一方面,如果你想证明你的数据是正确的,你应该建立一个测试程序,加载所有的数据,然后运行一组计算-除了单元测试,因为你仍然需要知道你的程序是正确的。自动化测试的思想是分别测试应用程序中的每个部分,这样当测试失败时,您就可以确切地知道问题所在。您可以将我的实时数据视为模拟数据,因为它是静态的。唯一的问题是我不想浪费所有的时间重新编程。我的服务器上有所有这些数据,这些数据是静态的,我按程序加载它们。我只是不想一次又一次地加载数据。现在,想象一下testvo是一个同步,有5分钟的加载窗口。我不想在每个测试类的每个测试之前都执行testVO=newtestmyvo()。但只需一次,并在所有测试类中使用它。我该怎么办?你不知道。这就是重点。考虑一下,在您的数据集中有一个错误…现在,即使程序工作正常,所有测试都将失败。如果网络瘫痪,同样的情况也会发生。您将不知道问题的原因。这种类型的测试设置对您没有帮助-您最好运行应用程序本身并使用调试器。我完全同意您的看法。但是,我的数据是我已经知道是真实的,它不会改变(不是我需要测试的东西),考虑我有1,3,5,我在测试一个加法函数,1,3,5永远是常数。我需要的是确保在新构建中我没有弄乱加法函数,它总是返回1+3=5。我知道输入和输出,只需要确保函数是正确的。好吧,除了1+3=4(duh)这个事实之外,你可以下载所有数据并将其存储在一个测试双类中。这样,您就可以根据已知的真实数据进行测试,但在测试中仍然不使用网络和数据库。您没有抓住要点。您不应该使用从服务器加载的真实数据进行测试。TestVo是一个加载了已知值的测试VO。weltraumpirat:我会在线记录数据以进行模拟(以测试整个系统的运行情况,或在不影响服务器的情况下处理可视化逻辑),但我认为这是在测试层之上的额外一层“东西”。如果您确实能够做到这一点,可能意味着您的服务层承担了太多的责任。