我正在尝试为我的 AngularJS 应用程序编写一个端到端测试,在该测试中我检查当某个参数在 URL 中时,是否会发生某些事情。但是,$routeParams
是一个空对象。这个人也有同样的问题。我试图确定一些文本出现在 UI 中时?code=whatever
,在 URL 中。我的应用程序有效,这条路线符合预期:
$routeProvider.when '/',
resolve:
redirect: ($location, $routeParams, $http, $cookieStore) ->
console.log $routeParams
code = $routeParams.code
console.log 'code: ' + code
if code
// do something
else
// do something else
当我test-index.html?code=123
通过 Karma 测试运行程序访问时,在浏览器控制台中我看到:
Object {}
code: undefined
我希望必须$routeParams
在单元测试中进行模拟,但我认为端到端测试会像真正的应用程序一样运行。$routeParams
当肯定有 URL 参数时,为什么在我的测试中完全为空?
编辑:这是我的测试:
it 'fills in the input field when code is in URL', ->
browser().navigateTo '/base/test-index.html?code=123#/'
element('a.some-link').click()
expect(input('my_param.value').val()).toBe 'something that gets set when code in URL'