【问题标题】:How deep should be e2e Protractor tests?e2e Protractor 测试应该有多深?
【发布时间】:2014-08-26 01:06:53
【问题描述】:

我正在为登录页面编写 e2e 测试,但我意识到我不知道我的测试应该有多深。我澄清自己:一项主要测试必须是真实登录,显然,另一项将是虚假登录。另一个测试可以检查登录页面工作上的现有链接。但是,我应该测试显示所有页面的元素吗?例如:编写测试来检查 div 并显示其中的元素:

it('It should be displayed a Elke Winter div', function(){

    var elkeDiv = angularPage.elkeDiv;
    expect(elkeDiv.isDisplayed()).toBe(true);

    var title = angularPage.titleElke;
    var img = angularPage.imgElke;
    var content = angularPage.contentElke;
    var telephoneDt = angularPage.telDt;
    var telephoneDd = angularPage.telDd;
    var faxDt = angularPage.faxDt;
    var faxDd = angularPage.faxDd;

    expect(title.isDisplayed()).toBe(true);
    expect(img.isDisplayed()).toBe(true);
    expect(content.isDisplayed()).toBe(true);
    expect(telephoneDt.isDisplayed()).toBe(true);
    expect(telephoneDd.isDisplayed()).toBe(true);
    expect(faxDt.isDisplayed()).toBe(true);
    expect(faxDd.isDisplayed()).toBe(true);
});

你怎么看? 谢谢

【问题讨论】:

    标签: protractor angularjs-e2e


    【解决方案1】:

    我只测试对用户体验至关重要的页面内容,例如

    • 按钮
    • 指示正在发生的事情的短信
    • 链接
    • 输入
    • 菜单

    永远不要测试诸如 div 之类的 html 特定内容,而是始终使用语义选择器,例如 html id 或类,或者按内容查找它们,例如

    • by.cssContainingText('#linkOne', 'Click here')
    • by.buttonText('Send Email')

    如果你找到一个 div 元素,你想定位它但没有 html id 或 html 类,然后尽可能自己添加它,我使用前缀 e2e-e2e-linkOne 这样开发人员知道选择器已被识别以测试为目的。然后你定位元素$('.e2e-linkOne'),而不是标签名和/或位置$$('div').get(2)

    【讨论】:

      猜你喜欢
      • 2014-01-12
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2016-03-04
      相关资源
      最近更新 更多