如何在 JavaScript 中的每个循环内按索引获取地图值?
How to get map values by index when inside each loop in JavaScript?
我尝试以干净的方式编写测试。
我遍历页面上 table 的行(每行显示有关附件的信息)并验证每个附件的大小是否正确:
it('attaches many documents', () => {
const fileSizes = ['17.19 KB', '12.06 KB', '67.75 KB']
cy.get('input[type="file"]').attachFile([excelFilePath, docxFilePath, pdfFilePath])
cy.get('div.table-body>.table-row').each(($el, index) => {
expect($el.find('.col-upload-size')).to.contain.text(fileSizes[index])
})
})
但在代码的前面我已经定义了这张地图:
const fileSizesMap = new Map([
["excelFileSize", "17.19 KB"],
["docxFileSize", "12.06 KB"],
["pdfFileSize", "67.75 KB"]
]);
我能否以某种方式摆脱测试中的 fileSizes
列表并改用 fileSizesMap
?
我知道您想用 fileSizesMap
:
中的值替换 fileSizes
const fileSizes = Array.from(fileSizesMap.values())
您可以尝试 return 一个可迭代的值并进行断言:
const fileSizesMap = new Map([
["excelFileSize", "17.19 KB"],
["docxFileSize", "12.06 KB"],
["pdfFileSize", "67.75 KB"]
]);
it('attaches many documents', () => {
cy.get('input[type="file"]').attachFile([excelFilePath, docxFilePath, pdfFilePath])
for (const value of fileSizesMap.values()) {
cy.get('div.table-body>.table-row').then(() => {
expect($el.find('.col-upload-size')).to.contain.text(value)
})
}
})
我尝试以干净的方式编写测试。 我遍历页面上 table 的行(每行显示有关附件的信息)并验证每个附件的大小是否正确:
it('attaches many documents', () => {
const fileSizes = ['17.19 KB', '12.06 KB', '67.75 KB']
cy.get('input[type="file"]').attachFile([excelFilePath, docxFilePath, pdfFilePath])
cy.get('div.table-body>.table-row').each(($el, index) => {
expect($el.find('.col-upload-size')).to.contain.text(fileSizes[index])
})
})
但在代码的前面我已经定义了这张地图:
const fileSizesMap = new Map([
["excelFileSize", "17.19 KB"],
["docxFileSize", "12.06 KB"],
["pdfFileSize", "67.75 KB"]
]);
我能否以某种方式摆脱测试中的 fileSizes
列表并改用 fileSizesMap
?
我知道您想用 fileSizesMap
:
fileSizes
const fileSizes = Array.from(fileSizesMap.values())
您可以尝试 return 一个可迭代的值并进行断言:
const fileSizesMap = new Map([
["excelFileSize", "17.19 KB"],
["docxFileSize", "12.06 KB"],
["pdfFileSize", "67.75 KB"]
]);
it('attaches many documents', () => {
cy.get('input[type="file"]').attachFile([excelFilePath, docxFilePath, pdfFilePath])
for (const value of fileSizesMap.values()) {
cy.get('div.table-body>.table-row').then(() => {
expect($el.find('.col-upload-size')).to.contain.text(value)
})
}
})