在SAPUI5 sinon中stubing byId()
我在SAPUI5和sinonjs混在一起。但有些事情我想不通在SAPUI5 sinon中stubing byId(),sapui5,sinon,Sapui5,Sinon,我在SAPUI5和sinonjs混在一起。但有些事情我想不通 QUnit.module("Validation of Betaalwijze", { beforeEach : function () { this.oMainViewController = new MainViewController(); this.oViewStub = new ManagedObject(); var
QUnit.module("Validation of Betaalwijze", {
beforeEach : function () {
this.oMainViewController = new MainViewController();
this.oViewStub = new ManagedObject();
var data = {
IBANPrimair: "123",
IBANSecundair: "456",
Betaalwijze: ""
};
var oModel = new JSONModel(data);
var fakeBetaalwijzeField = new Input();
sinon.stub(this.oViewStub, "getModel").returns(oModel);
sinon.stub(this.oViewStub, "byId").returns(fakeBetaalwijzeField);
sinon.stub(this.oMainViewController, "getView").returns(this.oViewStub);
},
afterEach : function() {
this.oMainViewController.destroy();
this.oViewStub.destroy();
this.fakeBetaalwijzeField.destroy();
}
});
QUnit.test("Should set an ValueState Error", function (assert) {
// Arrange
//All preparation here above.
// Act
this.oMainViewController._validateInput();
// Assert
//TODO
});
当我为oViewStub使用“sap/ui/base/ManagedObject”时,getModel存根工作得很好。但在这种情况下,byId存根会导致消息“试图将未定义的属性byId包装为函数”。
当我对OviewTub使用“sap/ui/core/mvc/View”时,找不到getModel存根。(但这在beforeEach中也会出现错误:无法读取未定义的属性“viewData”。)
什么是存根视图及其方法getModel()和byId()的正确方法?答案非常简单:没有方法
byId
。这是一种方法。只需在每个之前在中创建一个视图
,而不是管理对象
,就可以了
溴
克里斯应该不会有任何问题。确保this.oViewStub
对象是sap.ui.core.mvc.View
您的viewStub
是实际的sap.ui.core.mvc.View
?可能会提供更多的代码,尤其是创建viewStub
。此外,我建议使用沙盒:好的,下一步是使用沙盒,注意到。现在我只使用destroy。我试过你的建议@cschuff。但我一定是在监督一件大事。我更新了我的问题。如果你能让我走上正轨那就太好了。啊,非常感谢。我懂了。我把错误信息弄混了。