代码之家  ›  专栏  ›  技术社区  ›  Timigen Zachary Cutler

测试模型默认值

  •  0
  • Timigen Zachary Cutler  · 技术社区  · 10 年前

    以下模型的所有属性默认值均为空。但当我使用Jasmines toBeNull()函数测试属性时,它的计算结果不会为true。并表示属性未定义。为什么?
    我定义了以下主干模型:

    Entities.GroupModel = Backbone.Model.extend({
        defaults: 
    {
        "gid"         : null,
        "title"       : null,
        "description" : null,
        "access_date" : null
    }
    });
    

    然后在一次测试中,我创建了一个新模型。。。

    var groupModel = new CCDocUploader.Entities.GroupModel({});
    
    console.log(groupModel);  ///when I inspect the attributes i see they are set to null
    console.log(groupModel.gid == null); //this evaluates to true
    expect(groupModel.gid).toBeNull(); ///this claims it is undefined and fails...why?
    
    1 回复  |  直到 10 年前
        1
  •  3
  •   Dmytro Yarmak    10 年前

    您不能直接访问模块的属性:

    groupModel.gid;
    

    你应该使用 accessors 而是:

    groupModel.get('gid');
    

    在你的情况下 groupModel.gid == null 因为 groupModel.gid undefined 在JS中:

    undefined == null // => true
    null == null // => true