spec.cy.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. describe('未来全栈教学案例库 项目启动', () => {
  2. it('访问项目首页', () => {
  3. cy.visit('/')
  4. cy.contains('案例')
  5. })
  6. it('首页跳转编辑案例页,完成编辑测试', () => {
  7. cy.visit('/')
  8. // 查找包含特定文本的 ion-button 并点击
  9. // 注意,contains参数2 可以用正则表达式匹配部分内容,如果用字符串,需要写全部内容,否则匹配不到
  10. cy.contains('ion-button', /输入编辑/, { timeout: 10000 }).click();
  11. cy.contains('星星打分')
  12. // 覆盖测试:测试所有选项点击效果
  13. for (let index = 1; index < 10; index++) {
  14. cy.get('app-edit-ratio-star .list ion-icon').eq(index).click({force:true});
  15. cy.wait(100)
  16. cy.get('app-edit-ratio-star .list ion-icon').eq(index).should('have.attr', 'name').and('equal', "star");
  17. }
  18. for (let index = 8; index > -1; index--) {
  19. cy.get('app-edit-ratio-star .list ion-icon').eq(index).click({force:true});
  20. cy.wait(100)
  21. cy.get('app-edit-ratio-star .list ion-icon').eq(index).should('have.attr', 'name').and('equal', "star");
  22. }
  23. // 置空测试,点击星星后,再次点击,数值设为0
  24. cy.get('app-edit-ratio-star .list ion-icon').eq(4).click({force:true});
  25. cy.get('app-edit-ratio-star .list ion-icon').eq(4).click({force:true});
  26. cy.get('ion-input[name=score]').should('exist');
  27. // 验证输入的值 应该为 0
  28. // 注意ion-input本身不具有value,而是需要找到内部shadow dom的真实input,进行校验
  29. cy.get('ion-input[name=score]').find('input').should('have.value', '0');
  30. })
  31. })