gpt4 book ai didi

unit-testing - "element(selector, label).query(fn)"方法在 Angular E2E 测试中是如何工作的?

转载 作者:行者123 更新时间:2023-12-01 04:01:05 24 4
gpt4 key购买 nike

编写 E2E 测试时Angular Scenario Runner 我遇到了一个 query()方法:

element(selector, label).query(fn)

documentation说:

Executes the function fn(selectedElements, done), where selectedElements are the elements that match the given jQuery selector and done is a function that is called at the end of the fn function. The label is used for test output.



所以我为我的 html 页面上的一组按钮写了一个 it-case:
it('should display all buttons on page load', function () {
var buttonText = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];
element('button', 'UI elements').query(function (selectedElements, done) {
selectedElements.each(function (idx, elm) {
expect(elm.innerText in buttonText).toEqual(true);
});
done();
});
});

作为测试执行的结果,我收到了一个包含 10 个失败的带有文本的期望子句的列表:

expected true but was undefined



中级调试显示 elm.innerText in buttonText条件为真。

所以我的问题是,出了什么问题?是不是 done()的用法不对?方法?

最佳答案

您不能在 element().query() 函数内调用 expect() 。

但是您可以执行以下操作

var promise = element('SELECTOR').query(function(selectedElements, done) {
// We are in JQuery land.
if (selectedElements < 1) {
done('ERROR MESSAGE')
} else {
done(null, selectedElements[0].innerText)
}
// For documentation only.
// Don't return anything... just continue.
done()
})
expect(promise).toEqual('i am waiting for you')

您可以将 promise 和 expect 组合到一个调用中。

关于unit-testing - "element(selector, label).query(fn)"方法在 Angular E2E 测试中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com