2

我有一段令人沮丧的时光,我不确定是否是 Ember Mirage 导致了问题。我在服务中有以下代码。

    Ember.$.get({
        url: `/api/online-courses/${Ember.get(course, 'id')}/courseData`,
        async: false, // use of deferreds, or promises, is deprecated with this setting
        beforeSend: function (xhr) {
          xhr.setRequestHeader('Authorization', Ember.get(service, 'ajax.headers')['Authorization'])
        },
        success: (result) => {
          globalState.initialized = true
          Ember.get(service, 'store').pushPayload('course-datum', result)
          initializeValues()
          returnVal = 'true'
        },
        error: (args) => {
          returnVal = 'false'
        }
      })

      return returnVal

我的mirage/config.js文件中也声明了路线。它设置为仅在单元测试期间使用 mirage。

在测试期间,我可以通过 XHR 请求跟踪代码执行,进入 Mirage 路由处理程序,然后……什么也没有。它不会击中定义的成功或错误处理程序Ember.$.get

当我在开发中针对真正的 Web 服务器执行此代码时,它工作正常。

Mirage 支持async:false国旗吗?我还尝试使用this.pretender.get语法来使用此处定义的同步样式声明我的端点:https ://github.com/pretenderjs/pretender#timing-parameter 但仍然没有乐趣......

任何想法,在正确方向上的推动等都将不胜感激。

4

0 回答 0