我使用以下网址/#!/ 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吗?
答案 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"