当前位置: 首页 > 后端技术 > Java

SAPSpartacus辅助功能E2E端到端测试

时间:2023-04-01 23:05:30 Java

Spartacus中的原始辅助功能有自己的一组端到端测试,位于projects/storefrontapp-e2e-cypress/cypress/integration/accessibility/tabbing-order.e2e-规格其中包括需要用户登录的测试(例如,“我的帐户”页面和购物车)和不需要用户登录的测试(例如,主页和登录页面)。目前,测试涵盖了通过应用程序的选项卡。对于每个新功能,都应手动编写新测试以检查选项卡的工作方式。如果Tab的某些方面无法正常工作(例如,Tab顺序不符合预期,或者无法通过Tab访问交互元素),则测试应该失败。要运行添加到tabbing-order.e2e-spec.ts的新测试,请在运行Cypress时选择tabbing-order测试。实施新的A11yE2E测试(1)向projects/storefrontapp-e2e-cypress/cypress/helpers/accessibility/tabbing-order.config.ts中的配置对象添加一个新属性。名称应简短且具有描述性。login:[{value:'userId',type:TabbingOrderTypes.FORM_FIELD},{value:'password',type:TabbingOrderTypes.FORM_FIELD},{value:'忘记密码?',type:TabbingOrderTypes.LINK},{value:'登录',类型:TabbingOrderTypes.BUTTON},{值:'注册',类型:TabbingOrderTypes.BUTTON},]注意:a。登录的类型为TabElement[]。b.该类型是一个TabbingOrderTypes枚举,它支持多种类型的元素。您可以通过在Spartacus源代码中查找TabbingOrderTypes枚举的定义来查看所有支持的类型。(2)在projects/storefrontapp-e2e-cypress/cypress/helpers/accessibility/tabbing-order/中添加新的帮助文件。从'../tabbing-order'导入{verifyTabbingOrder};从'../../auth-forms'导入{fillLoginForm};从'../../../sample-data/checkout-flow'导入{user};从'../tabbing-order.model'导入{TabElement};constcontainerSelector='.LoginPageTemplate';导出函数loginTabbingOrder(config:TabElement[],prefillForm:boolean=false){cy.visit('/login');if(prefillForm){const{email:用户名,密码}=user;fillLoginForm({用户名,密码});}verifyTabbingOrder(containerSelector,config);}A。某些页面或视图可能需要额外的,并且帮助文件可能比上面显示的示例更大或更复杂。您可以通过查看projects/storefrontapp-e2e-cypress/cypress/helpers/accessibility/tabbing-order/中的现有帮助程序文件来查看其他示例。b.使用constcontainerSelector,您可以使用类似CSS的选择器来创建一个变量来保存您的函数。C。导出函数(例如本例中的loginTabbingOrder函数)应始终具有TabbingOrder后缀,并且应始终将配置作为参数。d.cy.visit是cypress函数的一个例子。在此示例中,它告诉cypress访问您的函数所在的页面。您导出的函数应始终使用预定义的verifyTabbingOrder(containerSelector,config)函数。(3)在projects/storefrontapp-e2e-cypress/cypress/integration/accessibility/tabbing-order.e2e-spec.ts中,从您在上一步中创建的帮助文件中导入TabbingOrder函数。例如:import{loginTabbingOrder}from'../../helpers/accessibility/tabbing-order/login';(4)在同一文件(tabbing-order.e2e-spec.ts)中,添加测试。context('登录页面',()=>{it('应该允许使用tab键导航(空表单)',()=>{loginTabbingOrder(config.login);});it('应该允许导航使用Tab键(填写表格)',()=>{loginTabbingOrder(config.login,true);});});A。上下文应指向您要测试的页面。b.每个测试都使用字符串“应该允许使用tab键导航”,并且应该包含在所有新测试中。C。loginTabbingOrder是您在login.ts帮助文件中创建的函数,(config.login)是您添加到projects/storefrontapp-e2e-cypress/cypress/helpers/accessibility/tabbing-order.config中配置对象的登录属性。ts(来自此过程的第1步)。更多Jerry原创文章在这里:《王子熙》: