Results 1 to 2 of 2

Thread: Spying on controllers method never get called

  1. #1
    Sencha User
    Join Date
    Mar 2012
    Posts
    35
    Answers
    2
    Vote Rating
    0
      0  

    Default Spying on controllers method never get called

    Hi folks,

    In my test code I use sinon to spy on my components methods and events. It has being working great with all components (forms, buttons, etc) but when I try to spy on controllers method, the controller always calls the real method and never the spy, even thou I can confirm that the real method was replaced by the spy.

    Any idea how this is possible?

    Below we have a pseudo-code
    Code:
    controller.js
    
    Ext.define('myapp.controller.Main', {
        extend: 'Ext.app.Controller',
    
    
        requires:[
            'myapp.view.Account.AccountForm'
        ],
    
    
        config: {
            refs: {
                accountForm: {
                    selector: 'account-form',
                    xtype: 'account-form',
                    autoCreate: true
                }
            },
            control: {
                'account-form': {
                    save: 'onAccountSave'
                }
            }
        },
    
    
        onAccountSave: function(form, user){
            console.log('real onAccountSave: ', user);
            });
        },
    });

    Code:
    test/controller-spec.js
    
    var main = MyApp.app.getController('MyApp.controller.Main');
    var account_form = main.getAccountForm();
    var spy = sinon.spy(main, 'onAccountSave');
    account_form.fireEvent('save', account_form, {});
    spy.should.have.been.called;

  2. #2
    Sencha - Sr Software Engineer mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    39,551
    Answers
    3931
    Vote Rating
    1271
      0  

    Default

    I've never used sinon but from what it looks it should have been called.
    Mitchell Simoens @LikelyMitch
    Sencha Inc, Senior Software Engineer
    ________________
    Learn BBCode and use it! Checkout the CODE tag!

    Check out my GitHub, lots of nice things for Ext JS and Sencha Touch
    https://github.com/mitchellsimoens

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •