我正在使用 Bryntum Siesta 来测试 ExtJS 应用程序的 UI。我创建了一个TestClass
并旨在将其方法用于不同的视图。测试的整个动作是相同的,只是一些特定的事情发生了变化,例如package
, view
,grid
名称。以下是测试套件的一些片段:
主要测试类
var isDisplaying = 'Grid is displaying now.';
var collapseDesc = 'Collapse Navbar';
Class('Siesta.Test.ListScreen', {
isa : Siesta.Test.ExtJS,
methods: {
navigation: function (callback) {
var t = this;
t.chain(
{waitForCQ: 'treelist[itemId=navigationTreeList]'},
function (next) {
t.click('treelist[itemId=navigationTreeList]');
next();
},
{click: '>> treelistitem[_text=Package_Name]'},
{click: '>> treelistitem[_text=Package_Submodule]', desc: 'Package Submodule'+isDisplaying},
{click: '#main-navigation-btn => .fa-navicon', desc: collapseDesc},
function (next) {
console.log('navigation func log');
next();
},
callback
)
}
}
});
这个 testClass 调用Package_Submodule
并获得成功:
describe('UI Testing: Submodule List Screen', function (t) {
//Extended method for navigation to submodule
t.it('Should open: Submodule Grid', function (t) {
t.chain(
{
navigation: t.next
}
)
});
});
这里的事情是我想TestClass
为另一个子模块调用相同的方法并覆盖几个东西,比如Package_Name
and Package_Submodule
。我怎样才能成功做到这一点?
提前致谢
通过 JackSamura 的回答更新:
亲爱的@SamuraiJack 我已经重构了主类(ListScreen)和插入的has
属性。还修改了harness
withconfig
属性,但不幸的是它没有覆盖myPackageName
or mySubModule
。而不是我得到这个错误:
Waiting for element ">> treelistitem[_text=packageName]" to appear
我也尝试过使用函数参数,但也没有用。你能告诉我为什么我不能覆盖新值吗?
主类(更新):
var isDisplaying = 'Grid is displaying now.';
var collapseDesc = 'Collapse Navbar';
Class('Siesta.Test.ListScreen', {
isa : Siesta.Test.ExtJS,
has : {
myPackageName : 'packageName',
mySubModule : 'subModule'
},
methods: {
navigation: function (callback) {
var t = this;
t.chain(
{waitForCQ: 'treelist[itemId=navigationTreeList]'},
function (next) {
t.click('treelist[itemId=navigationTreeList]');
next();
},
{click: '>> treelistitem[_text='+this.myPackageName+']'},
{click: '>> treelistitem[_text='+this.mySubModule+']', desc: this.mySubModule+isDisplaying},
{click: '#main-navigation-btn => .fa-navicon', desc: collapseDesc},
function (next) {
console.log('navigation func log');
next();
},
callback
)
}
}
});
index.js:
group: 'UI Tests',
items: [
{
group: 'Submodule List Screen',
testClass: Siesta.Test.ListScreen,
items: [
{
title : 'Submodule1',
hostPageUrl : localApp,
url : '02-ui-tests/02_01-submodule-list-screen/submodule1-list.t.js',
config : {
myPackageName : 'Package1',
mySubModule : 'Submodule1'
}
},