我正在try 验证两个JSON文件,如果文件数据有效,则将其记录为"成功",如果无效,则将其记录为"失败".但是我的测试用例总是显示失败,即使文件中的值是正确的.我通过在每个函数中引入日志(log)来判断文件中的值.

我try 了上面的方法,但总是收到"失败"的消息 如果有解决办法,我会很高兴,我不确定出了什么问题 output

test.cy.js

cy.get('.dataTable-custom').get('.w-40').eq(0).then((el) => {
                cy.writeFile('request-number.json',
                    {
                        request_number: el.text()
                    })
            })
            cy.readFile('request-number.json').then((request) => {
                expect(request).to.be.an('object')
                cy.log(request)
                cy.readFile('application-details.json').then((json) => {
                    expect(json).to.be.an('object')
                    cy.log(json)
                    if (request === json) {
                        cy.log("success")
                    }
                    else {
                        cy.log("fail")
                    }
                })
            })```
**request-number.json**
`{
  "request_number": "ARS/0099/2023"
}`
  
**application-details.json**
`{
  "request_number": "ARS/0099/2023"
}`


推荐答案

在Java脚本中,您不能简单地使用"=="或"="来比较两个对象,您需要首先将对象转换为字符串化版本,然后再进行比较.

...
if (JSON.stringify(request) === JSON.stringify(json)) {
    cy.log("success")
  }
  else {
    cy.log("fail")
 }
...

参考文献:https://www.educative.io/answers/how-to-compare-two-objects-in-javascript

Javascript相关问答推荐

自定义帖子类型帖子未显示在网站上

Angular:ng-contract未显示

JS生成具有给定数字和幻灯片计数的数组子集

具有相同参数的JS类

使用TMS Web Core中的HTML模板中的参数调用过程

过滤对象数组并动态将属性放入新数组

Msgraph用户邀请自定义邮箱模板

屏幕右侧屏障上的产卵点""

如何避免页面第一次加载时由于CSS样式通过JavaScript更改而出现闪烁

第三方包不需要NODE_MODULES文件夹就可以工作吗?

同一类的所有div';S的模式窗口

以编程方式聚焦的链接将被聚焦,但样式不适用

如何在HTMX提示符中设置默认值?

如何在Press上重新启动EXPO-AV视频?

更新Redux存储中的对象数组

未找到用于 Select 器的元素:in( puppeteer 师错误)

在单击按钮时生成多个表单时的处理状态

在将元素追加到DOM之前,createElement()是否会触发回流?混淆abt DocumentFragment行为

Promise.race()返回已解析的promise ,而不是第一个被拒绝的promise

在Press Reaction本机和EXPO av上播放单个文件