2

我有一个需要身份验证的 AngularJS 应用程序。它是 Express 提供的一个更大项目的一部分,并且存在于自己的基本路径中:<base href="/path/to/app/">,而不是/. 现有应用程序已经具有往返登录。用户需要先登录才能访问 Angular 应用程序。这很好用,除了使用 testacular 进行 e2e 测试。

禁用服务器上的身份验证后,e2e 测试可以毫无问题地运行。例如:

describe 'protected app', ->

  it 'should display the index', ->
    browser().navigateTo '/path/to/app'
    expect(browser().location().url()).toBe '/'

  it 'etc...'

显然,使用服务器端身份验证,这将失败。我们需要先登录。我们收到以下错误:

Sandbox Error: Application document not accessible.

当我们尝试在我们的场景中登录时,问题就出现了。

describe 'protected app', ->

  it 'should authenticate', ->
    browser().navigateTo '../login'
    #input('#email').enter('admin@example.com')
    #input('#password').enter('secret')
    #element('button').click()    

  it 'should display the index', ->
    browser().navigateTo '/path/to/app'
    expect(browser().location().url()).toBe '/'

  it 'etc...'

运行此程序(无论是否填写表单并单击)都会导致登录页面加载并冻结。Testacular 永远不会完成它的运行,它只是挂在登录页面上。

我对 Angular/Testacular/e2e 测试的理解是否存在缺陷,或者可能是错误?

4

1 回答 1

1

Vojta 说这不是睾丸问题。问题是 Angular 场景运行器不支持整页重新加载。

于 2012-11-16T23:58:48.283 回答