0

下面的 Ember 序列化程序测试因“无法读取属性‘push’ of null”而失败。

我正在使用 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