4

我终于完成了我的 AngularJS 测试环境设置,我正在尝试测试我的应用程序上的页面是否正常工作。这包括模板路由请求指令等。

根据我的发现,在测试一个工作应用程序时,事实证明大部分工作都需要模拟。虽然这很好,但我仍然想从我的应用程序中测试出实际的模板和数据。

每当在我的应用程序中进行 GET 调用时,我都会收到如下错误:

Unexpected request: GET application/templates/home.html
No more request expected
Error: Unexpected request: GET application/templates/home.html

原来它无法正确下载请求。这很好。从我认为的情况来看,测试运行器(testacular)无法下载模板文件,因为它一起位于不同的环境中(没有提供 HTTP 地址)。我遇到的关于如何解决这个问题的唯一解决方案是使用 $httpBackend 服务通过模拟来存根请求。虽然这对某些情况很有用,但我想获取实际数据。

关于如何解决这个问题的任何想法?

4

1 回答 1

3

您可能想要编写两种不同类型的测试:

  1. 使用 mock 进行单元测试以单独测试组件,例如控制器、指令等
  2. 运行完整堆栈的 e2e 测试,包括来自您自己服务器的数据。

这两种测试都需要单独的睾丸配置。

Angular 提供对导航测试浏览器和与您的应用程序交互的支持,就像用户一样。解释和 API 记录在这里:http ://docs.angularjs.org/guide/dev_guide.e2e-testing

我的 testacular e2e 配置和解释发布在这里: https ://stackoverflow.com/a/13410567/1739247

如那篇文章所述,针对您自己的服务器运行测试的重要部分是proxies

于 2012-11-23T17:44:24.253 回答