Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为不同设备、网络下的移动web应用编写可靠的单元测试?_Javascript_Unit Testing_Cordova_Jasmine - Fatal编程技术网

Javascript 如何为不同设备、网络下的移动web应用编写可靠的单元测试?

Javascript 如何为不同设备、网络下的移动web应用编写可靠的单元测试?,javascript,unit-testing,cordova,jasmine,Javascript,Unit Testing,Cordova,Jasmine,我正在开发基于PhoneGap的网络应用程序。基本上我使用Jasmine作为我的测试框架。但是写健壮的单元测试对我来说是一件痛苦的事情。我遇到了这些问题, 网络有时会变得不稳定 不同的设备,有的cpu频率高,ram大,有的cpu频率低 gps信号在不同情况下可能会变强或变弱 单元测试的结果可能因上述不确定条件而异。如何消除这些副作用并使结果更可靠?我不确定能否回答您关于如何消除这些副作用的实际问题,因为我对您的环境了解不多。然而,我确实认为你可以用不同的方式来思考你的测试,这可能会有所帮助 您的

我正在开发基于PhoneGap的网络应用程序。基本上我使用Jasmine作为我的测试框架。但是写健壮的单元测试对我来说是一件痛苦的事情。我遇到了这些问题,

  • 网络有时会变得不稳定
  • 不同的设备,有的cpu频率高,ram大,有的cpu频率低
  • gps信号在不同情况下可能会变强或变弱

  • 单元测试的结果可能因上述不确定条件而异。如何消除这些副作用并使结果更可靠?

    我不确定能否回答您关于如何消除这些副作用的实际问题,因为我对您的环境了解不多。然而,我确实认为你可以用不同的方式来思考你的测试,这可能会有所帮助

    您的单元测试不必考虑诸如“如果在运行测试时信号变弱会怎么样”之类的情况。相反,您应该有一个单元测试来模拟该条件,然后在这些条件下测试应用程序的预期行为。当您可以复制假设情况时,您就可以有效地为它们编写单元测试


    接下来一个明显的问题是如何复制假设条件,我不确定PhoneGap或Jasmine是否能直接解决这个问题。也许你可以在模拟器中控制一些东西,有效地再现微弱的网络/gps信号。CPU/RAM功耗的差异可能只是需要很多设备才能进行测试。

    您建议在测试中模拟一切(环境、数据等)。实际上,我在真实设备上运行了所有这些测试,我确实希望在真实环境下进行测试。我不知道我是否把事情弄混了。在真实环境中进行测试不再是真正的单元测试。我想说的是更多的集成测试,可以用Jasmine编写脚本。然而,集成测试并不是你可以控制那么多变量的东西。请查看此链接以进一步描述差异。我想这仍然无法控制环境变量,但我认为这样做可能太难了。