我正在尝试使用固定装置来保存不同测试的数据。这是代码的示例。当进行第二次测试时,我收到“无法读取未定义的属性‘电子邮件’”。
有什么想法以及如何解决这个问题吗?我对此很陌生,并且遵循了一个课程,他们说在“之前”使用固定装置的全部目的是让所有东西都可以访问数据。这是错误的吗?
谢谢
describe('Example', function() {
before(function() {
cy.fixture('dataFile').then(function(dataJson) {
this.dataJson = dataJson;
});
});
it('name', function() {
cy.log(this.dataJson.email);
});
it('name2', function() {
cy.log(this.dataJson.email);
});
});
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用以下解决方案使其工作:
describe('Example', function() {
let testData;
before(function() {
cy.fixture('dataFile').then(function(dataJson) {
testData = dataJson;
return testData;
});
});
it('name', function() {
cy.log(testData.email);
});
it('name2', function() {
cy.log(testData.email);
});
});
Run Code Online (Sandbox Code Playgroud)
而不是before()必须使用beforeEach(),以便夹具数据可用于所有it()块:
describe('Example', function() {
beforeEach(function() {
cy.fixture('dataFile').then(function(dataJson) {
this.dataJson = dataJson;
});
});
it('name', function() {
cy.log(this.dataJson.email);
});
it('name2', function() {
cy.log(this.dataJson.email);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8925 次 |
| 最近记录: |