0
AJAXでPOSTを行い、送信されるデータをテストしようとしていますが、「paramString.splitは関数ではありません」というエラーが表示されますそのテストが実行されるとき。私はこれについて他の投稿を探しましたが、FormDataがAJAXで動作するようになっているようですが、問題はありません。データは送信されますが、成功したテストを書くことはできません。jasmine-ajaxのFormDataオブジェクトの解析を停止できません
AJAX:
upload: (file, progressCallback) => {
let data = new FormData();
data.append('image', file);
return $.ajax({
xhr: function() {
let xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener('progress', progressCallback);
return xhr;
},
method: 'POST',
url: apiUrl(),
cache: false,
processData: false,
contentType: false,
data: data
});
}
試験: https://github.com/jasmine/jasmine-ajax/blob/master/src/paramParser.js#L18:エラーがこの行で発生さ
describe('my test',() => {
beforeEach(function() {
jasmine.Ajax.install()
});
afterEach(function() {
jasmine.Ajax.uninstall();
});
it('sends a POST request to the right endpoint with data', function() {
const image = {
size: 10000,
type: 'image/jpeg'
};
let data = new FormData();
data.append('image', image);
myService.upload(image); // POST happens here
const request = jasmine.Ajax.requests.mostRecent();
expect(request.method).toBe('POST'); // passes
expect(request.url).toBe('/dashapi/dam-assets/'); // passes
expect(request.data()).toEqual(data); // error
});
エラー
TypeError: paramString.split is not a function
。私はブレークポイントをそこに置き、paramString
は実際にその時点でFormDataオブジェクトです。私はjasmine.Ajax.install
でリクエストを嘲笑して元のリクエストにあるprocessData: false
を上書きしていると仮定していますが、それを修正する方法がわかりません。