Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 使用数据工厂guy插件的对象模拟_Unit Testing_Ember.js_Ember Data - Fatal编程技术网

Unit testing 使用数据工厂guy插件的对象模拟

Unit testing 使用数据工厂guy插件的对象模拟,unit-testing,ember.js,ember-data,Unit Testing,Ember.js,Ember Data,我不熟悉Embebr js,使用ember data factory插件模拟ajax响应,但在模拟下面的响应时遇到了问题 { "employee/profile": { "id": 60799, "gender": "Male", "fname": "Mick", "lname": "Hussey", "addresses": [ "50345" ]

我不熟悉Embebr js,使用ember data factory插件模拟ajax响应,但在模拟下面的响应时遇到了问题

 {
      "employee/profile": {
        "id": 60799,
        "gender": "Male",
        "fname": "Mick",
        "lname": "Hussey",
        "addresses": [
          "50345"      
        ]   
      },
      "employee/addresses": [
        {
          "id": "50345",
          "addressState": "GA",
          "zip": "30004"  
        }     
      ] 

    } 
为了实现这一点,我在tests/factories/directory中创建了profile和address模型。 员工/个人资料模型

地址模型:

当我尝试使用下面的代码片段构建profile对象时,除了addresses之外的所有字段都会被填充

let profile = this.build('employee/profile');
谁能帮我理解出了什么问题吗

谢谢
Gautam

您需要定义如下关系:

addresses:  FactoryGuy.hasMany('employee/address', 1)
这样,您就表示您想要一个地址数组,其中只有一项。如果省略最后一个,您将得到一个空的地址列表。请参阅hasMany的源代码


顺便说一句,我已经为你准备了一份,以备你需要。我不是专家;但我已经尽力了。您可以在unit/models/emoloyee/profile-test.js下检查概要文件模型的工厂定义和单元测试。希望这能有所帮助。

这是一个输入错误,您在某处有“员工/地址”和“员工/地址”。可能是这导致了问题。抱歉,在起草问题时出现了问题。更正我没有使用上述插件。虽然我知道,要填充hasMany属性,它应该已经有了关系数据。所以,当你让profile=this.build'customer/profile';它是否也会用员工/地址填充商店?或者你必须独立完成。谢谢你的回复。我两个都试过了,但还是不能;感谢您的帮助,标记为答案。除了您的更改之外,我还必须从地址模型中删除雇员:FactoryGuy.belongsTo'employee/profile'。
let profile = this.build('employee/profile');
addresses:  FactoryGuy.hasMany('employee/address', 1)