我有一个使用谷歌地图和wicket JS库的离子应用程序。 在index.html中,我有
alpha=0.025
并且在模拟器或离子服务器中运行应用程序时一切正常,但是当使用地图对组件进行单元测试时,我得到了#34; google未定义"行上的错误
<script src="assets/wicket.js"></script>
<script src="http://maps.google.com/maps/api/js?key=[key]&libraries=drawing,places"></script>
我猜这是因为我错过了测试配置中的js引用,但我不知道在哪里以及如何包含它们。 有谁知道在测试配置中包含这些? (我一直在关注https://www.joshmorony.com/how-to-unit-test-an-ionic-2-application/教程,将单元测试添加到现有应用程序中。
谢谢, 尤瓦
答案 0 :(得分:0)
您需要做的是模拟依赖项,在这种情况下是google maps lib或google
object。
您可以使用库或创建一些模拟服务。在这种情况下,我会尝试找到一个好的模拟库:https://github.com/sttts/google-maps-mock它不是离子特定的,但它可能会起作用。
也可以尝试在函数中使用局部变量来实例化生命周期钩子,例如onInit
this.location = new google.maps.LatLng(0, 0);
能够更轻松地进行测试。
我在这里https://github.com/chrisgriffith/ionic-native-mocks/blob/master/package.json发现了一些有用的"@ionic-native/google-maps": "^4.5.3",