我正在尝试使用参数化测试合并一堆具有相同操作和检查的测试,但不断出现错误。我是Cypress和JS的新手,来自.net背景。如有任何帮助,我们将不胜感激。
我的固定装置看起来像这样:
{
"username": "username",
"password": "password",
"inputErrorMessageText": "Invalid username or password.",
"homePageWelcomeText": "Welcome, bla bla bla",
"testCases": [
{
"description": "blank username and password",
"username": "",
"password": ""
},
{
"description": "blank password",
"username": "username",
"password": ""
}
]
}
我已经尝试了Cypress.each和data.testCases.forEach:
describe("Tests for login page", () => {
let loginPage;
let homePage;
let data;
before(() => {
cy.fixture("login_data").then((fixtureData) => {
data = fixtureData;
cy.wrap(fixtureData).should("have.property", "testCases");
});
});
beforeEach(() => {
loginPage = new LoginPage();
homePage = new HomePage();
cy.visit("/");
});
Cypress.each(data.testCases, (testCase) => {
it(`Invalid username or password error appears when attempting login with ${testCase.description}`, () => {
loginPage.login(testCase.username, testCase.password);
loginPage.verifyErrorMessage(data.inputErrorMessageText);
});
});
it("Successful login with valid username and password", () => {
loginPage.login(data.username, data.password);
homePage.verifyProfileDropDownExists();
});
it("Welcome text is displayed after successful log in", () => {
loginPage.login(data.username, data.password);
homePage.verifyWelcomeText(data.homePageWelcomeText);
});
data.testCases.forEach((testCase) => {
it(`Invalid username or password error appears when attempting login with ${testCase.description}`, function () {
loginPage.login(testCase.username, testCase.password);
loginPage.verifyErrorMessage(data.inputErrorMessageText);
});
});
不断出现以下错误:
TypeError:以下错误源于您的测试代码,而不是Cypress。
>无法读取未定义的属性(正在读取“testCases”)