如何解决当我在 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 举报,一经查实,本站将立刻删除。