 
     it 'SetNotifyCallback', ->
         m = new MVCObject()
-        spy = sinon.spy()
-        m.changed = spy
-        m.set 'k', 1
-        expect(spy.calledOnce).to.be.ok
+        m.changed = sinon.spy()
+        m.set 'k', 1
+        m.changed.should.have.been.calledOnce
 
     it 'SetNotifyKeyCallback', ->
         m = new MVCObject()
-        spy = sinon.spy()
-        m.k_changed = spy
-        m.set 'k', 1
-        expect(spy.calledOnce).to.be.ok
+        m.k_changed = sinon.spy()
+        m.set 'k', 1
+        m.k_changed.should.have.been.calledOnce
 
     ###
     bindTo(key, target, targetKey, noNotify):

        m = new MVCObject()
        n = new MVCObject()
        p = new MVCObject()
        spy1 = sinon.spy()
        spy2 = sinon.spy()
        n.k_changed = spy1
        p.k_changed = spy2
        n.bindTo 'k', m # first invoke
        p.bindTo 'k', m, 'k', true # no first invoke
        m.set 'k', 1 # n second invoke, p first invoke
        expect(spy1.calledTwice).to.be.ok
        expect(spy2.calledOnce).to.be.ok

    # it 'SetNotifyKeyEvent', ->
    #     m = new MVCObject

        m = new MVCObject()
        n = new MVCObject()
        m.set 'k', 1
        m.get('k').should.equal 1
        should.not.exist n.get 'k'
        n.bindTo 'k', m
        m.get('k').should.equal 1
        n.get('k').should.equal 1

    it 'SetBindTransform', ->
        m = new MVCObject()
        n = new MVCObject()
        m.set 'k', 1
        m.get('k').should.equal 1
        should.not.exist n.get 'k'
        n.bindTo('k', m).transform (fromValue)->
            fromValue / 2
        , (toValue)->
            toValue * 2
        m.get('k').should.equal 1
        n.get('k').should.equal 2

    it 'BindSet', ->
        m = new MVCObject()
        n = new MVCObject()
        n.bindTo 'k', m
        m.set 'k', 1
        m.get('k').should.equal 1
        n.get('k').should.equal 1

    it 'BindSetTransform', ->
        m = new MVCObject()
