我在我的ui5应用程序中有这个表(m.Table),我使用以下示例进行排序。 https://sapui5.hana.ondemand.com/1.42.7/explored.html#/sample/sap.m.sample.TableViewSettingsDialog/preview
我有一套单元测试(QUnit),我在这里测试了这个功能,但是我一直收到一个错误,说“"对象不支持方法排序"。
这是我的代码片段
var oBinding = controls.searchResultsTable.getBinding("items");
var aSorter = [];
var sPath = "columnName";
aSorter.push(new Sorter(sPath, false));//sort in descending order
oBinding.sort(aSorter);
上面的代码在应用程序运行时负责排序,一切正常。
以下是我的测试片段
QUnit.test("valid search input", function(assert){
....
//my attempt at testing this
var getBinding = sinon.stub().returns(new sap.ui.model.Binding(),
function(){});
}
var oBinding = {getBinding: getBinding};
....
错误指向我执行aBinding.sort(aSorter)的行; 看看api,sap.ui.model.Binding没有任何" sort()"功能。所以我不确定排序是如何工作的,更不用说测试了。有人可以给我一些指导吗?
答案 0 :(得分:0)
因为sort
在sap.ui.model.ListBinding
上完成,因为您正在对表项进行绑定。 Link
还有不同的其他绑定扩展sap.ui.model.Binding
,如sap.ui.model.PropertyBinding
(绑定在单个UI控件上),sap.ui.model.TreeBinding
(绑定在Tree控件上)等等。