ale*_*cxe 11 javascript testing dry jasmine protractor
在我们的一项测试中,我们有以下一系列期望:
expect(headerPage.dashboard.isDisplayed()).toBe(true);
expect(headerPage.queue.isDisplayed()).toBe(true);
expect(headerPage.claimSearch.isDisplayed()).toBe(true);
expect(headerPage.claim.isDisplayed()).toBe(true);
expect(headerPage.case.isDisplayed()).toBe(true);
expect(headerPage.calendar.isDisplayed()).toBe(true);
Run Code Online (Sandbox Code Playgroud)
一方面,有多个简单的期望提供了更精确和可理解的反馈,但另一方面,这看起来违反了DRY原则和"每次测试的一个期望"通常可接受的指导方针.
有没有办法将其转换/简化为单一预期?
headerPage是一个页面对象,dashboard其他页面对象字段是导航链接.
Ret*_*sam 15
我认为你误解了"每次测试期望"指南的目的.关键不在于将一堆期望结合到一个单一的期望中,而是将您的期望分成单独的测试.
要遵循该指南的精神,您可以像这样编写测试:
describe("The header page", function () {
var headerPage;
beforeEach(function () {
//Common logic here
});
it("displays the dashboard", function () {
expect(headerPage.dashboard.isDisplayed()).toBe(true);
});
it("displays the queue", function () {
expect(headerPage.queue.isDisplayed()).toBe(true);
});
it("displays the claimSearch", function () {
expect(headerPage.claimSearch.isDisplayed()).toBe(true);
});
//etc.
});
Run Code Online (Sandbox Code Playgroud)
这比你所拥有的要冗长得多; 但这就是为什么这些是指导而不是规则.这是您进行测试的详细程度与以后调试的简单程度之间的权衡.("标题页显示仪表板:FAILED")是一个非常清晰且特定的测试失败消息,与获取相同的失败消息相比,无论哪个期望实际失败.
我绝对不会尝试将所有这些线组合成一条线.如果您不想将其拆分为一堆不同的测试用例,我会留下它的样子.
| 归档时间: |
|
| 查看次数: |
257 次 |
| 最近记录: |