2014-02-15 50 views
-1

我面對試圖嘲笑一些迪朗達爾的依賴關係......例如一個問題,我有這個在我的視圖模型(在激活功能):迪朗達爾和Jasmine:依賴模擬

routerFirstActiveFragment = router.activeInstruction().fragment.toLowerCase().split('/')[0]; 

我想嘲笑路由器插件,所以,在我的測試文件,我有這樣的:

define(['viewmodels/testvm', 'plugins/router'], function (testvm, router) { 
    describe('Module test', function() { 
     it('a test', function() { 
      spyOn(router, 'activeInstruction').andReturn('/get/33'); 
      testvm.activate(); 
     }); 
    }); 
}); 

的事情是,當我這樣做,我當我運行的測試收到此消息

TypeError: Cannot read property 'toLowerCase' of undefined 

那麼,我在做什麼錯了?

在此先感謝!

回答

0

那麼,它的工作原理是這樣的:

spyOn(router, 'activeInstruction').andCallFake(function() { 
    return { 
     fragment: "/get/33" 
    }; 
});