To be able to develop in TDD
As a PhoneGap developer using Jasmine and Karma
I want to be able to run Jasmine spec files inside a PhoneGap application
So I can verify my Cordova specific code in my unit tests
根据因果报应#472,它对某些/大多数人不起作用,但有些人声称可以做到。
我想要实现的是能够访问Cordova环境(例如;文件系统API,电池事件等)在我的规范文件/测试中。(顺便说一下,我确实模拟了很多服务,但我想访问真正的API)
我试图将Cordova应用程序重定向到与window.location = 'http://karma:8080'
的Karma跑者页面,而我可以在测试中加载基础cordova.js
文件,deviceready
永远不会触发(见票),再加上我无法抓取所需的JS代码插件功能(即。依赖插件的代码无法测试)。
我试图在Cordova应用程序中创建一个指向Karma的<iframe>
,但也无法访问cordova
。
我发现其他人正在向window.parent
注入cordova,但我真的看不到这是如何工作的(我无法从我的<iframe>
访问window.parent
)。
我曾尝试在波纹模拟器和Android avd中这样做,但同样缺乏成功。
任何指示都非常感谢。我在Android上使用Cordova 3.4.1(不针对iOS),以及最新的Karma。
您可以在www
文件夹中创建两个单独的文件index_real.html
和index_test.html
。index_real.html
是您当前拥有的index.html
。index_test.html
将使用index_real.html
的Jasmine版本进行测试。
创建real.sh
:
cp index_real.html index.html
cordova run
and test.sh
:
cp index_test.html index.html
cordova run
运行real.sh
将运行未配置的应用程序版本,而test.sh
将运行测试套件。如果您将index_test.html
设置在您的index_real.html
附近,您将拥有UI自动化测试,或者如果您将放置标准的Jasmine测试运行器,您将拥有单元测试套件。