1. #1
    Sencha User
    Join Date
    Mar 2012
    Posts
    35
    Answers
    2
    Vote Rating
    0
    ericchaves is on a distinguished road

      0  

    Default Unanswered: Spying on controllers method never get called

    Unanswered: 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 - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    37,408
    Answers
    3549
    Vote Rating
    851
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    I've never used sinon but from what it looks it should have been called.
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

Thread Participants: 1

Tags for this Thread