javascript - 提取 Json 数据并使用 Protractor 验证值
问题描述
我需要从 Json 文件中读取数据,然后断言其键的值与其他一些值匹配。下面是我的示例代码:
var fs = require('fs');
let StudentData = 'StudentData.json';
describe('Test for Json Data', function (){
let Data = {
a: 'a',
b: 'bb',
c: 'ccc'
};
let DT = JSON.stringify(Data);
fs.writeFileSync(StudentData ,DT)
it('test for C', function(){
let Uploaded_data = fs.readFileSync(StudentData);
let Data = JSON.parse(Uploaded_data);
let c = Data['c'];
console.log(c);
expect(c.toBe('ccc'));
})
});
当我运行脚本时,我收到以下错误:
1) Test for Json Data test for C
Message:
Failed: c.toBe is not a function
Stack:
TypeError: c.toBe is not a function
我如何在这里验证“c”的值?
解决方案
我同意@jonrsharpe 你应该这样做expect(c).toBe(...)
。还有一些其他的事情需要注意。我会将您希望在it
块之前发生的方法放在 a beforeAll
orbeforeEach
方法中,以确保它们在 it 块之前执行。
连同@jonrsharpe 的评论一起清理它,我会执行以下操作:
const fs = require('fs');
const studentData = 'StudentData.json';
describe('Test for Json Data', () => {
const data = {
a: 'a',
b: 'bb',
c: 'ccc'
};
beforeAll(() => {
// make sure that you specify this in beforeAll or beforeEach
fs.writeFileSync(studentData ,JSON.stringify(data))
});
it('test for C', () => {
const uploadedData = fs.readFileSync(StudentData);
const parsedData = JSON.parse(uploadedData);
const c = parsedData['c'];
console.log(c);
expect(c)toBe('ccc'));
});
});
推荐阅读
- ios - 如何在 UISegmentedControl 中高效地实现两个相似的视图
- c++ - std::atomic 中的自定义类型
- python - 在多维数组pyhton的一行中找到最大、第二大或第三大的索引
- amazon-web-services - 从 WAF/Kinesis 获取时间戳到 Elasticsearch
- excel - 需要在散点图Excel中添加虚线
- android - 错误:找不到符号类生成器(使用 GeoApiContext)
- google-api - 尝试使用 Google Vault API 列出事项时出错
- excel - 从具有多个地址的变量中选择一个范围
- reactjs - Axios GET 请求表单编码数据
- javascript - 如何使用lodash按键连接两个不同大小的对象数组