0

以下の Ember シリアライザー テストは、「null のプロパティ 'push' を読み取れません」で失敗します。

Pretender モック サーバー ライブラリを使用しています。store.findRecord() を呼び出しているときにテストが失敗する

割り当てモデル/シリアライザーに関係がないことに注意してください。これが、次のエラーをスローしていると混乱する理由です。

ここをクリックして、返されたエラーを確認してください

割り当てシリアライザー:

import DS from 'ember-data';
const { JSONAPISerializer } = DS;

export default JSONAPISerializer.extend({
attrs: {
    autoPassReviewerNote: 'autoPassReviewerNote',
        dateOfCreation: 'date_of_creation',
        displayType: 'displayType',
        lastUpdate: 'last_update',
        moduleItem: 'moduleItem',
        submissionType: 'submissionType'
    }
});

割り当てモデル:

import DS from 'ember-data';
const {
    Model,
    attr
} = DS;

    export default Model.extend({
    title: attr('string'),
    submissionType: attr('string'),
    description: attr('string'),
    completed: attr('boolean'),
    displayType: attr('string'),
    dateOfCreation: attr('string'),
    lastUpdate: attr('string'),
    autopass: attr('boolean'),
    moduleItem: attr('object')
});

シリアライザーテスト(失敗しています):

import { moduleForModel, test } from 'ember-qunit';
import Pretender from 'pretender';
import Ember from 'ember';

const {
    run
} = Ember;

var server;

moduleForModel('assignment', 'Unit | Serializer | assignment', {
    needs: [
        'serializer:assignment'
    ],

    beforeEach: function() {
        server = new Pretender(function() {
            // eslint-disable-next-line ember/use-ember-get-and-set
            this.get('/assignments/:id', function() {
                    data: {
                        type: 'assignment',
                        id: 98,
                        attributes: {
                            title: 'dfgdfg',
                            submissionType: 'dfgdf',
                            displayType: 'dfgdfg',
                            date_of_creation: 'sdfgsdfg',
                            last_update: 'fgdgd'
                        }
                    }
                };

                return [ 200, { 'Content-Type': 'application/json' }, JSON.stringify(response) ];
            });
        });
    },

    afterEach: function() {
        server.shutdown();
    }
});

test('testing assignment serializer', function(assert) {
    var checkAttrSerialization = (assignment) => {
        assert.equal(assignment, true);
    }

    let store = this.store();

    run(() => {
        return store.findRecord('assignment', 98).then((assignment) => checkAttrSerialization(assignment));
    });
});
4

0 に答える 0