我的团队目前正在将AngularJS应用程序从1.3更新到1.7。我们将一步一步地进行工作,以便当前的应用程序仍可以在不产生巨大代码差异的情况下进行处理(即在转换项目仍处于活动状态时添加或重构大型功能)。这意味着我们仍然有一些用JavaScript而不是TypeScript编写的Jasmine测试。
我们一直遇到的一个问题是,当我们将服务转换为TypeScript时,仍需要JavaScript控制器或服务使用。在应用程序中,此方法工作正常,但测试失败,并显示格式为Error: [$injector:unpr] Unknown provider: myTsServiceProvider <- myTsService <- myJsService
的消息。
我对为什么会发生这种情况的有根据的猜测是,需要导入TypeScript文件以产生副作用,以便注册app.service/app.factory
调用。在应用程序中,我们在主应用程序文件中执行此操作。但是,在JavaScript测试中,我们无法做到这一点。如果那是正确的评估,我不确定我们如何才能使测试再次起作用。
是否有人解决了这种情况,或者有人对尝试什么有任何想法?除非禁用它们,直到重写各自的控制器/服务,否则我很茫然。