当我在 Mocha 测试中将函数编写为 lambda

如何解决当我在 Mocha 测试中将函数编写为 lambda

当我使用下面的代码时,我没有得到变量数据的上下文评估错误

 describe('Hooks',()=>{
    before(()=>{
        cy.fixture("example.json").then(function(data){
            this.data=data
        })
    })

    it("my First Test case",function(){
        cy.visit("https://rahulshettyacademy.com/angularpractice/")
        
        cy.get(":nth-child(1) > .form-control").type(this.data.name)
       
        cy.get("#exampleFormControlSelect1").select(this.data.gender)
    })
})

将我的 mocha 测试函数编写为 lambda 时(请参阅下面的代码),我收到数据变量的上下文评估错误 代码

describe('Hooks',()=>{
    before(()=>{
        cy.fixture("example.json").then((data)=>{
            this.data=data
        })
    })

    it("my First Test case",() =>{
        cy.visit("https://rahulshettyacademy.com/angularpractice/")
        
        cy.get(":nth-child(1) > .form-control").type(this.data.name)
       
        cy.get("#exampleFormControlSelect1").select(this.data.gender)
    })
})

错误

在 Context.eval (webpack:///cypress/integration/examples/Test8Framework.js:4:13) 从之前的活动: 在 Context.thenFn (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:155190:24) 在 Context.then (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:155629:22) 在上下文。 (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:170229:22) 在(https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:169653:16) 从之前的活动: 在 runcommand (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:169632:9) 接下来(https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:169778:15) 在(https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:169806:17) 从之前的活动: 接下来(https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:169778:35) 从之前的活动: 在 Promise.catch.err.name (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:169819:38) 从之前的活动: 运行时 (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:169812:22) 在 $Cy.cy。 [作为固定装置](https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:170269:12) 在 Context.runnable.fn (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:170496:22) 在 callFn (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:104252:22) 在钩子.../driver/node_modules/mocha/lib/runnable.js.Runnable.run (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:104239:8) 在(https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:176219:29) 从之前的活动: 在 Object.onRunnableRun (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:176207:18) 在 $Cypress.action (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:166637:29) 在 Hook.Runnable.run (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:174384:14) 接下来(https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:104754:11) 在(https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:104798:6) 在时间片 (https://rahulshettyacademy.com/__cypress/runner/cypress_runner.js:98724:28)

解决方法

如果您使用此测试上下文存储和访问夹具数据 对象,确保使用 function () { ... } 回调。否则 测试引擎不会将 this 指向测试上下文。

这在 cypress docs 中有提到。因此,在您使用 it("my First Test case",() =>{ 的测试中,它失败了,而当您使用 it("my First Test case",function(){ 时,它通过了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?