1

在我的量角器 e2e 测试中,我想将模拟数据用于httpBackendMock. 但是我无法将数据访问/注入到模拟模块中。下面是我的咖啡代码。

describe 'my test page', ->
  ptor = protractor.getInstance()
  page = require('./pages/FooPage.js')
  fooPage = new page()
  data = require('./data/testdata.json').data

  describe 'happy path', ->
    beforeEach ->
      httpBackendMock = ->
        angular.module('httpBackendMock', ['ngMockE2E', 'fooApp.controllers']).run ($httpBackend) ->
          mockData = data

当我运行测试时,线路失败(未定义mockData = data抱怨)。data我知道这是由于根据 https://github.com/angular/protractor/issues/509执行的不同上下文

那么如何在我的角度模拟模块中指定模拟数据变量呢?我不想对测试中的数据进行硬编码。

4

1 回答 1

3

使用http-backend-proxy找到了解决方案

describe 'my test page', ->
  page = require('./pages/FooPage.js')
  httpBackend = require('http-backend-proxy')
  fooPage = new page()
  mockData = require('./data/testdata.json')

  describe 'my test steps', ->
    beforeEach ->
      proxy = new httpBackend(browser)
      proxy.onLoad.whenGET('/foo/v1/userinfo').respond(200, mockData)
      proxy.onLoad.whenGET(/.*/).passThrough()
      fooPage.get()
      browser.driver.manage().window().maximize()

    describe 'main page scenarios', ->
      it 'scenario 1', ->
        usual expect and toBe stuff
于 2014-08-05T17:32:22.857 回答