我终于得到了我的AngularJS测试环境设置,我正在尝试测试我的应用程序上的页面是否正常工作.这包括模板,路线,请求,指令等.
根据我的发现,在测试一个正在运行的应用程序时,结果证明模拟需要完成大部分工作.虽然这很好,但我仍然想测试我的应用程序中的实际模板和数据.
Unexpected request: GET application/templates/home.html No more request expected Error: Unexpected request: GET application/templates/home.html
事实证明它无法正确下载请求.哪个好.根据我的想法,测试运行器(testacular)无法下载模板文件,因为它在一起的不同环境中(没有提供HTTP地址).我遇到的唯一解决方法是使用$httpBackend服务使用模拟来存根请求.虽然这对某些情况很有用,但我想获取实际数据.
有关如何解决此问题的任何想法?
解决方法
您可能想要编写两种不同的测试:
>使用模拟进行单元测试,以隔离测试组件,如控制器,指令等
>运行完整堆栈的e2e测试,包括来自您自己服务器的数据.
这两种测试都需要单独的测试配置.
Angular提供了对导航测试浏览器以及与用户进行交互的支持.这里有解释和API:http://docs.angularjs.org/guide/dev_guide.e2e-testing
我的测试e2e配置和解释发布在这里:
https://stackoverflow.com/a/13410567/1739247
对于您自己的服务器运行测试的重要部分是代理,如该帖子中所述.