【问题标题】:Stubbing byId() in SAPUI5-sinon在 SAPUI5-sinon 中存根 byId()
【发布时间】:2018-02-04 18:13:54
【问题描述】:

我在 SAPUI5 中使用 sinonjs。但是有些事情我无法理解。

        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-stub 工作得很好。但是在这种情况下,byId-stub 会导致消息“尝试将未定义的属性 byId 包装为函数”。 当我为 oViewStub 使用“sap/ui/core/mvc/View”时,找不到 getModel-stub。 (但这也会在 beforeEach 中出现错误:Cannot read property 'viewData' of undefined。)

存根视图及其方法 getModel() 和 byId() 的正确方法是什么?

【问题讨论】:

  • 应该没问题。确保 this.oViewStub 对象是 sap.ui.core.mvc.View
  • 您的viewStub 是实际的sap.ui.core.mvc.View 吗?也许提供更多的代码,尤其是。创建viewStub。此外,我建议使用沙箱:sinonjs.org/releases/v1.17.6/sandbox
  • 好的,下一步是使用沙箱,请注意。现在我只是使用破坏。我试过你的建议@cschuff。但我一定是在监督一些大事。我更新了我的问题。如果你能让我走上正轨就好了。

标签: sapui5 sinon


【解决方案1】:

答案很简单:sap.ui.base.ManagedObject 没有方法byId。这是sap.ui.core.mvc.View的方法。只需在beforeEach 中创建一个View 而不是ManagedObject 就可以了。

BR 克里斯

【讨论】:

  • 啊,非常感谢。我懂了。我混淆了错误消息。
猜你喜欢
  • 1970-01-01
  • 2015-11-28
  • 2015-01-18
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-27
相关资源
最近更新 更多