如何从量角器测试中访问$ routeParams

时间:2014-12-16 23:35:47

标签: angularjs protractor

我使用以下网址/#!/ people / user / 134来查找用户个人资料 我正在尝试创建一个测试,以验证用户配置文件页面上显示的数据是否正确。为此,我想从$ routeParams获取用户id(134),然后调用其余端点并根据其余端点的响应验证模型。

我试图找到一种获取routeParams的方法,但我发现的所有例子都是硬编码的...... 来自官方phonecat教程的例子:

beforeEach(inject(function(_$httpBackend_, $rootScope, $routeParams, $controller) {
    $httpBackend = _$httpBackend_;
    $httpBackend.expectGET('phones/xyz.json').respond({name:'phone xyz'});

    $routeParams.uuid = 'xyz';
    scope = $rootScope.$new();
    ctrl = $controller('PhoneCatContr', {$scope: scope});
}));

有什么方法可以访问实际的routeParams吗?

1 个答案:

答案 0 :(得分:0)

这不应该在protractor方面解决; protractor是一个端到端高级 黑盒测试框架,其主要目的是模仿真实用户与浏览器中页面的交互。

但是,要关注@adamK的建议,您可以从当前网址中提取它:

var url = browser.getCurrentUrl();
var userID = url.match(/(\w+)\.json/)[1];

演示:

> var s = "phones/xyz.json";
> s.match(/(\w+)\.json/)[1];
"xyz"