我有一段令人沮丧的时光,我不确定是否是 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
但仍然没有乐趣......
任何想法,在正确方向上的推动等都将不胜感激。