【发布时间】:2016-04-02 14:55:10
【问题描述】:
我有一个从页面对象调用 2 个函数的测试。当第一个函数的期望成功时,我希望第二个函数正常执行。否则,我希望中止执行第二个函数。
这是我对 2 个函数的测试。
it('Should do something.', function () {
page.expectModalBoldTextOf(('Expected Text'));
page.clickButton('Yes');
});
这是我想要返回布尔值的函数。
public expectModalBoldTextOf(boldedText: string) : boolean {
element.all(by.className('modal-body')).filter(function (elm) {
return elm.isDisplayed().then(function (displayed) {
return displayed;
});
}).then(function (modalBodyArray) {
if (modalBodyArray.length === 0) { // force a descriptive failure.
expect('Modal dialog').toBe('displayed on the page');
return false;
}
else {
modalBodyArray[0].element(by.tagName('strong')).getText().then(function (strongText) {
expect(strongText.toUpperCase()).toBe(boldedText.toUpperCase());
return true;
});
}
});
}
现在,上面呈现以下量角器错误。
声明类型既不是“void”也不是“any”的函数必须返回一个值或由单个“throw”语句组成。
如果我将返回类型从“boolean”更改为“any”,则此函数按需要工作(当我删除 return 语句时),但它不会返回任何指示它成功或失败的指示符,以便我可以防止正在执行的 clickButton 函数。
我知道只有在调用成功时才能在 expectModalBoldTextOf() 函数中调用 clickButton() 函数。但我宁愿返回一个布尔值来表示成功或失败,因为这会使它在我们的应用程序中更通用。
【问题讨论】:
标签: angularjs protractor