为了给Cypress的fixture添加It函数,我们可以使用JavaScript的原型继承机制。下面的代码演示了如何通过修改Cypress的原型来添加It函数:
Cypress.Commands.add('fixtureIt', (fixtureName, testName, callback) => {
cy.fixture(fixtureName).then((fixture) => {
if(testName in fixture) {
it(`[${fixtureName}] ${testName}`, () => {
callback(fixture[testName]);
});
} else {
throw new Error(`Cannot find test "${testName}" in fixture "${fixtureName}"`);
}
});
});
使用这个命令,我们可以从fixture中选择特定的测试,并将其包装在一个It命令中:
describe('My Test Suite', () => {
beforeEach(() => {
cy.fixture('my-fixture').as('myFixture');
});
it('should test something else', () => {
// regular test code
});
cy.fixtureIt('my-fixture', 'test-1', (data) => {
it(`should test ${data}`, () => {
// test code with data variable
});
});
cy.fixtureIt('my-fixture', 'test-2', (data) => {
it(`should test ${data}`, () => {
// test code with data variable
});
});
});
注意,我们必须将myFixture存储在cy的上下文中,这样它就不会被传递到fixtureIt函数中,而是可以在测试中使用。
上一篇:Addingitemtocartandremovingfromcart
下一篇:Addingjavax.servlet(etal)toTomcat10webapps/[app]/WEB-INF/lib。