Unit testing 使用数据工厂guy插件的对象模拟
我不熟悉Embebr js,使用ember data factory插件模拟ajax响应,但在模拟下面的响应时遇到了问题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" ]
{
"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)