当我用cordova和离子型软件测试我的混合应用程序时,我发生了奇怪的事情。
我用业力-茉莉花做单元测试。如果我少量地运行我的测试文件,它们就会成功。如果我把他们中的三个一起运行,他们仍然会成功。如果将它们全部包含在业力中(path/test/*. is ),5中有3成功,并发生以下错误:"StatusBar“未定义。
StatusBar是cordova插件--“cordova-”。我不知道为什么它只出现在测试所有文件在一起,而不是一个一个。我已经尝试重新排序这些测试文件,但是它们总是在第三个测试文件之后失败。
每次触发测试时,都会初始化和启动app.js。我不知道这是不是个问题。
有什么建议吗?
发布于 2016-05-31 19:13:44
问题是,我没有嘲笑我的角度应用模块。在我的模块的run函数中,我让$ionicPlatform侦听"deviceReady“事件。在这种情况下,我访问科多瓦插件,如Statusbar和其他。但是,由于我没有用插件来模拟应用程序模块,所以一旦触发deviceready事件,测试就开始失败。
为了解决这个问题,我定义了一个全局变量" testEnvironment“,因为我不想在模块中测试我的run方法,所以我只检查testEnvironment是否为true并退出run方法。我定义了全局变量,并在开始单元测试时立即设置它。
我希望有类似问题的人发现这是有帮助的。
https://stackoverflow.com/questions/37541541
复制相似问题