Javascript 从嵌套json向jasmine数据提供程序赋值?
我有以下sample.json文件。上的示例演示了简单JSON数据。如何将以下json数据的值传递给数据提供程序Javascript 从嵌套json向jasmine数据提供程序赋值?,javascript,jasmine,protractor,dataprovider,Javascript,Jasmine,Protractor,Dataprovider,我有以下sample.json文件。上的示例演示了简单JSON数据。如何将以下json数据的值传递给数据提供程序 [ { "company_name": "Google", "Headquartered_at": "Mountain view", "Department": [ { "name": "Engineering", "number_of_subDepart
[
{
"company_name": "Google",
"Headquartered_at": "Mountain view",
"Department": [
{
"name": "Engineering",
"number_of_subDepartment": "3",
"subDepartments": [
{
"subDepartment_name": "Developers",
"no_of_employees": "10"
},
{
"subDepartment_name": "SRE",
"no_of_employees": "10"
},
{
"subDepartment_name": "QA",
"no_of_employees": "10"
}
]
}, {
"name": "Human resources",
"number_of_subDepartment": "0"
}]
},
{
"company_name": "Microsoft",
"Headquartered_at": "Redmond",
"Department": [
{
"name": "Engineering",
"number_of_subDepartment": "2",
"subDepartments": [
{
"subDepartment_name": "Developers",
"no_of_employees": "10"
},
{
"subDepartment_name": "QA",
"no_of_employees": "10"
}
]
},
{
"name": "Human resources",
"number_of_subDepartment": "0"
}]
},
{
"company_name": "Facebook",
"Headquartered_at": "Menlo park",
"Department": [
{
"name": "Engineering",
"number_of_subDepartment": "2",
"subDepartments": [
{
"subDepartment_name": "Developers",
"no_of_employees": "10"
},
{
"subDepartment_name": "QA",
"no_of_employees": "10"
}
]
},
{
"name": "Human resources",
"number_of_subDepartment": "0"
}]
}
]
spec文件中的用法示例如下所示
describe('test addition with data provider - provider function', function () {
function plusProvider() {
return [
{a: 2, b: 3, expected: 5},
{a: '14', b: 15, expected: 29},
{a: 12, b: '13', expected: 25},
{a: '22', b: '13', expected: 35},
];
}
using(plusProvider, function (data) {
it('should calc with operator +', function () {
var result = calculator.calc(data.a, data.b, '+');
expect(result).toEqual(data.expected);
});
});
});
由于sample.json文件更复杂,如何读取数据提供程序函数并为其赋值。您能给我指出正确的参考资料吗。应该可以使用jasmine数据提供程序的标准JSON符号,以您需要的任何方式与传递的JSON进行交互。还是要在数组中的每个JSON块上调用它 datafile.json
[
{
"company_name": "Google",
"Headquartered_at": "Mountain view",
"Department": [
{
"name": "Engineering",
"number_of_subDepartment": "3",
"subDepartments": [
{
"subDepartment_name": "Developers",
"no_of_employees": "10"
},
{
"subDepartment_name": "SRE",
"no_of_employees": "10"
},
{
"subDepartment_name": "QA",
"no_of_employees": "10"
}
]
},
{
"name": "Human resources",
"number_of_subDepartment": "0"
}
]
},
{
"company_name": "Microsoft",
"Headquartered_at": "Redmond",
"Department": [
{
"name": "Engineering",
"number_of_subDepartment": "2",
"subDepartments": [
{
"subDepartment_name": "Developers",
"no_of_employees": "10"
},
{
"subDepartment_name": "QA",
"no_of_employees": "10"
}
]
},
{
"name": "Human resources",
"number_of_subDepartment": "0"
}
]
},
{
"company_name": "Facebook",
"Headquartered_at": "Menlo park",
"Department": [
{
"name": "Engineering",
"number_of_subDepartment": "2",
"subDepartments": [
{
"subDepartment_name": "Developers",
"no_of_employees": "10"
},
{
"subDepartment_name": "QA",
"no_of_employees": "10"
}
]
},
{
"name": "Human resources",
"number_of_subDepartment": "0"
}
]
}
]
代码
let using = require('jasmine-data-provider');
let file = require('./datafile.json');
using(file, (companyData) => {
console.log(companyData.company_name);
console.log(companyData.Headquartered_at);
for (let department of companyData.Department) {
console.log('Department name=' + department.name);
console.log('num sub departments=' + department.number_of_subDepartment);
if (department.number_of_subDepartment > 0) {
for (let subDepartment of department.subDepartments) {
console.log(subDepartment);
}
}
}
console.log();
//alternatively you can access in the standard way
console.log(companyData.Department[0].name);
console.log();
})
使用jasmine数据提供程序的标准JSON表示法,应该能够以您需要的任何方式与传递的JSON进行交互。还是要在数组中的每个JSON块上调用它 datafile.json
[
{
"company_name": "Google",
"Headquartered_at": "Mountain view",
"Department": [
{
"name": "Engineering",
"number_of_subDepartment": "3",
"subDepartments": [
{
"subDepartment_name": "Developers",
"no_of_employees": "10"
},
{
"subDepartment_name": "SRE",
"no_of_employees": "10"
},
{
"subDepartment_name": "QA",
"no_of_employees": "10"
}
]
},
{
"name": "Human resources",
"number_of_subDepartment": "0"
}
]
},
{
"company_name": "Microsoft",
"Headquartered_at": "Redmond",
"Department": [
{
"name": "Engineering",
"number_of_subDepartment": "2",
"subDepartments": [
{
"subDepartment_name": "Developers",
"no_of_employees": "10"
},
{
"subDepartment_name": "QA",
"no_of_employees": "10"
}
]
},
{
"name": "Human resources",
"number_of_subDepartment": "0"
}
]
},
{
"company_name": "Facebook",
"Headquartered_at": "Menlo park",
"Department": [
{
"name": "Engineering",
"number_of_subDepartment": "2",
"subDepartments": [
{
"subDepartment_name": "Developers",
"no_of_employees": "10"
},
{
"subDepartment_name": "QA",
"no_of_employees": "10"
}
]
},
{
"name": "Human resources",
"number_of_subDepartment": "0"
}
]
}
]
代码
let using = require('jasmine-data-provider');
let file = require('./datafile.json');
using(file, (companyData) => {
console.log(companyData.company_name);
console.log(companyData.Headquartered_at);
for (let department of companyData.Department) {
console.log('Department name=' + department.name);
console.log('num sub departments=' + department.number_of_subDepartment);
if (department.number_of_subDepartment > 0) {
for (let subDepartment of department.subDepartments) {
console.log(subDepartment);
}
}
}
console.log();
//alternatively you can access in the standard way
console.log(companyData.Department[0].name);
console.log();
})
似乎这可能是间谍的案子似乎这可能是间谍的案子