e2e量角器测试应该有多深?

时间:2014-08-25 09:05:36

标签: protractor angularjs-e2e

我正在为登录页面编写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);
});
你怎么看? 感谢

1 个答案:

答案 0 :(得分: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)