我在尝试模拟一些Durandal依赖项时面临一个问题...例如,我在我的viewmodel(在activate函数上)中有这个:
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 :(得分:0)
嗯,它的工作原理如下:
spyOn(router, 'activeInstruction').andCallFake(function () {
return {
fragment: "/get/33"
};
});