Angular Scenario Test Runner显示页面但断言失败

时间:2013-05-28 02:33:44

标签: django testing angularjs automated-tests integration-testing

我正在尝试将Angular的Scenario Test Runner与我的Django 1.4.4 webapp一起使用。

设置:我从角度phonecat教程项目(2013年3月,9a55c8)的新版本中复制了场景测试运行器文件。我将测试目录与其他静态资产(如js,css等)放在一起。我使用Angular进行一些绑定,但不使用路由。

问题:当我运行e2e runner并发出browser().navigateTo('../../../<myapp>');时,我可以看到我的app加载的页面(在测试运行器屏幕的底部),但它就像测试人员看不到它。我的测试代码中的browser().location().path()值为空。如果我试图断言该页面上的元素,那些元素是未定义的。

1 个答案:

答案 0 :(得分:2)

简短的回答是,设置实际上没有任何问题。是什么让我相信有两个基于对API的误解的观察。如果有人遇到类似问题,请注意:

  1. element(selector)之类的模式会返回未来的对象,这些对象在执行之前会显示为空。因为他们看起来很空虚,我相信他们没有匹配。如实例中所示,将它们与期望结合使用,例如: expect(element('title').text()).toMatch('.*Home Page.*');
  2. browser().location()使用$location service,默认情况下配置为使用Hashbang网址(例如http://foo.com/#!/bar?param=val#hash)。由于我使用的是传统URL(没有哈希),因此路径和URL都是空的。使用browser().window().href()达到了预期的目标。