我正在为登录页面编写 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);
});
你怎么看? 谢谢
最佳答案
我只测试对用户体验至关重要的页面内容,例如
- 按钮
- 指示正在发生的事情的短信
- 链接
- 输入
- 菜单
永远不要测试 html 特定的东西,比如 div,而是总是使用语义选择器,比如 html id 或类,或者通过内容找到它们,例如
by.cssContainingText('#linkOne', '点击此处')
by.buttonText('发送邮件')
如果你找到一个你想要定位的 div
元素但没有 html id 也没有 html class 然后尽可能自己添加它,我使用前缀 e2e-
像e2e-linkOne
让开发人员知道选择器是为了测试而识别的。然后,您定位元素 $('.e2e-linkOne')
而不是标记名和/或位置 $$('div').get(2)
.
关于protractor - e2e Protractor 测试应该有多深?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25482404/