在Angular之外获得Angular 6单例服务

在Angular之外获得Angular 6单例服务,angular,dependency-injection,Angular,Dependency Injection,有没有办法从外部角度代码获取角度服务的句柄?具体地说,我从测试框架中考虑测试目的 我希望能够获得对服务的引用以及其中的存根/模拟函数 可能吗?感觉应该是这样的,即使是通过窗口对象或类似对象 编辑澄清: 我正在编写测试,目的是将完全模拟的数据返回到UI,这样就不需要与服务器交互。这对于XHR调用来说很容易,但对于与websocket的交互来说却不容易。我们有一个用于管理与websocket交互的服务,所以我的想法是模拟其中的一些服务,这样它就可以发送回模拟的数据,而不是发送到服务器。我只是想看看是

有没有办法从外部角度代码获取角度服务的句柄?具体地说,我从测试框架中考虑测试目的

我希望能够获得对服务的引用以及其中的存根/模拟函数

可能吗?感觉应该是这样的,即使是通过窗口对象或类似对象

编辑澄清:


我正在编写测试,目的是将完全模拟的数据返回到UI,这样就不需要与服务器交互。这对于XHR调用来说很容易,但对于与websocket的交互来说却不容易。我们有一个用于管理与websocket交互的服务,所以我的想法是模拟其中的一些服务,这样它就可以发送回模拟的数据,而不是发送到服务器。我只是想看看是否或者如何做到这一点。

Angular框架还通过
测试床提供测试功能,允许您在需要时配置DI。谢谢你。我曾尝试使用TestBed,但到目前为止还没有达到我想要的效果。可能是我使用不正确,但它似乎没有返回正在运行的UI所使用的服务的实例。它似乎将服务的一个新实例返回给单元测试,而这正是测试床的设计目的。你认为它可以用来获得用户界面正在使用的实例的句柄吗?例如,帮助运行E2E测试?你不应该替换E2E测试中的任何内容,这就是为什么它们被称为端到端测试。也许你应该解释一下你试图解决的实际问题,这似乎是一个XY问题。抱歉,我认为我在上一次评论中使用E2E有点误导。我正在编写测试,目的是将完全模拟的数据返回到UI,这样就不需要与服务器交互。这对于XHR调用来说很容易,但对于与websocket的交互来说却不容易。我们有一个用于管理与websocket交互的服务,所以我的想法是模拟其中的一些服务,这样它就可以发送回模拟的数据,而不是发送到服务器。我只是想看看这是否或如何才能做到。