Jest测试和使用JavaScript更改属性值

Jest测试和使用JavaScript更改属性值,javascript,jestjs,Javascript,Jestjs,我正试图用笑话写一个测试。如果计算的属性给出这样的工具提示,则已经有类似的测试。现在,我试图测试具有内联引用的属性是否会给出这样的工具提示。分析列表中添加了“hasInlineRef:false”。它必须为false,否则将覆盖上一个测试。但是在为我的测试初始化它时,我想将其更改为hasInlineRef=true,这将使测试通过。我怀疑是我对JavaScript的知识非常有限导致我在这里失败 描述(“分析列表”,()=>{ 常量分析列表:数组=[{ 价值:“AAAAA”, 计数:23456,

我正试图用笑话写一个测试。如果计算的属性给出这样的工具提示,则已经有类似的测试。现在,我试图测试具有内联引用的属性是否会给出这样的工具提示。分析列表中添加了“hasInlineRef:false”。它必须为false,否则将覆盖上一个测试。但是在为我的测试初始化它时,我想将其更改为hasInlineRef=true,这将使测试通过。我怀疑是我对JavaScript的知识非常有限导致我在这里失败

描述(“分析列表”,()=>{
常量分析列表:数组=[{
价值:“AAAAA”,
计数:23456,
答案:错,
hasInlineRef:错,
dbValue:“AAAAA”
}, {
值:“AA”,
计数:800,
是的,
hasInlineRef:错,
dbValue:“AA”
}];
回答问题“如何更改数组中的单个属性?”的答案很简单:

analysisList[0].hasInlineRef = true;
在这里,我们可以看到通过其索引(
[0]
)访问数组项,并通过其名称
访问属性hasInlineRef

需要对数组中的所有项执行相同的操作使我们可以使用循环:

for(item in analysisList) {
    item.hasInlineRef = true;
} 
或使用可用于任何阵列的方法:

analysisList.forEach(item => {
    item.hasInlineRef = true;
})
有关在JS中使用阵列的更多信息:

感谢原始的
analysisList
更改,以及我们逐个转换其任何项

但是,如果我们从最开始的角度来看,我认为每个测试用例都改变测试数据是个坏主意。为什么

  • 测试变得更难维护,因为您永远不知道是否可以删除/添加/更改数据,或者仅仅因为数据突变将不再工作(同时组件将继续工作!所以测试的失败将说明一切)
  • 测试本身变得不那么可靠:改变顺序会导致不同的结果

  • 如果您不喜欢在测试代码中有巨大的数据负载,您可以将其移动到具有一些细微差别的单独的
    数据中。json
    另一个数据负载。json
    并在
    导入
    语句的帮助下将其加载到测试中。

    是否有任何东西阻止您以不同的方式将不同的数据传递到
    测试用例?属性值在使用此AnalysisList的其他测试用例中没有更改。因此我猜这只是一个简单的JavaScript问题,在初始化之前更改值。非常感谢