Testing AngularJS单元测试,不依赖于请求数据的模拟
我终于完成了AngularJS测试环境的设置,我正在尝试测试应用程序上的页面是否正常工作。这包括模板,路由,请求,指令等等 据我所知,当测试一个工作的应用程序时,大多数工作都需要模拟。虽然这很好,但我仍然希望测试我的应用程序中的实际模板和数据 每当在我的应用程序中进行GET调用时,我都会收到如下错误:Testing AngularJS单元测试,不依赖于请求数据的模拟,testing,angularjs,Testing,Angularjs,我终于完成了AngularJS测试环境的设置,我正在尝试测试应用程序上的页面是否正常工作。这包括模板,路由,请求,指令等等 据我所知,当测试一个工作的应用程序时,大多数工作都需要模拟。虽然这很好,但我仍然希望测试我的应用程序中的实际模板和数据 每当在我的应用程序中进行GET调用时,我都会收到如下错误: Unexpected request: GET application/templates/home.html No more request expected Error: Unexpected
Unexpected request: GET application/templates/home.html
No more request expected
Error: Unexpected request: GET application/templates/home.html
结果是它无法正确下载请求。这很好。据我所知,测试运行程序(TestCular)无法下载模板文件,因为它位于不同的环境中(没有提供HTTP地址)。关于如何解决这个问题,我遇到的唯一解决方案是使用$httpBackend服务使用模拟存根请求。虽然这在某些情况下很有用,但我想获取实际数据
您知道如何解决这个问题吗?您可能想编写两种不同类型的测试:
针对您自己的服务器运行测试的重要部分是
代理
,如那篇文章所述 我已经看了这两个测试,并同意Angular的方法,即在单元测试和e2e测试之间有一个明确的区别。然而,我想进一步测试控制器和服务,即使它们的XHR请求确实查询了实际的网站。有没有办法不用模拟就可以解决这个问题?谢谢你的精彩回复(顺便说一句:)再看一遍,我怀疑这与$http是异步的,测试是同步的有关。如果您尝试编写异步测试,可能会有所帮助?你能为你的问题添加一些示例代码吗?谢谢