gpt4 book ai didi

javascript - Siesta Ext JS 测试未完成

转载 作者:行者123 更新时间:2023-11-30 12:20:40 24 4
gpt4 key购买 nike

我正在使用 Siesta 测试 Ext JS 前端。这是我的登录/注销测试:

StartTest(function(t) {
t.diag("Login/Logout");
t.chain(
{ waitForCQ : '#loginPanel' },
function(next) {
t.cq1("#username").setValue();
t.cq1("#password").setValue();
next();
},
{ click: '>> #username' },
{ type: '******', target : '>> #username' },
{ type: '******', target : '>> #password' },
{ click: '>> #loginButton' },
{ waitForCQ: '#mainView' },
{ click: '>> #logoutButton' },
{ waitForCQ: 'messagebox #ok' },
function(next) {
t.waitForEvent(Ext.globalEvents, 'logoutComplete', function () {});
next();
},
{ click : '>> messagebox #ok' },
function() {
t.done();
}
);
});

测试在登录面板中输入用户名和密码,然后单击登录按钮。加载主视图后,它会注销。由于某种原因,此测试永远不会完成。

链中的每个 Action 都成功,但测试仍然卡在运行中。

我该如何解决这个问题?

我正在使用带有 ExtJS 5.1.0 的 siesta-3.0.2-lite。

最佳答案

1# 首先你可以尝试去掉t.done() ,除非您真的在等待它,否则测试中通常不需要它。 needDone线束设置中的默认值为 False。

2# 您正在使用 waitForEvent,这通常是在您将回调传递到那里时完成的。所以你的函数看起来像这样:

function(next) {
t.waitForEvent(Ext.globalEvents, 'logoutComplete', next);
},

但是如果你只想知道事件被触发了,你可以使用函数 firesOnce .不要忘记您需要在执行触发事件的操作之前注册检查事件

因此您的代码可能如下所示:

 function(next) {
t.firesOnce(Ext.globalEvents, 'logoutComplete','Logout completed!');
next();
},
{ click: '>> #logoutButton' },
{ waitForCQ: 'messagebox #ok' },
{ click : '>> messagebox #ok' },

但是我从来没有用过 Ext.globalEvents 来检查事件,所以我不确定它是否有效。

关于javascript - Siesta Ext JS 测试未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31222823/

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