2013-11-25 2 views
2

node.js 프레임 워크를 사용하여 작성된 서버 측 로직에 대한 일부 단위 테스트를 작성하려고합니다. 나는 조금 익숙하기 때문에 단위 테스트와 조롱을 위해 jasmine 라이브러리를 사용하고 싶었다. 내가 뭘 오전 궁금node.js - 재 스민 모듈 조롱

1) loginRedirectMiddleware encountered a declaration exception 
    Message: 
    TypeError: Cannot call method 'spyOn' of null 
    Stacktrace: 
    TypeError: Cannot call method 'spyOn' of null 
    at null.<anonymous> (/home/adebksi/Nauka/js-linkedin-connector/server_test/loginRedirectMiddlewareSpec.js:11:3) 
    at Object.<anonymous> (/home/adebksi/Nauka/js-linkedin-connector/server_test/loginRedirectMiddlewareSpec.js:10:1) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (/home/adebksi/Nauka/js-linkedin-connector/node_modules/karma/node_modules/coffee-script/lib/coffee-script/coffee-script.js:211:36) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.jasmine.executeSpecsInFolder (/home/adebksi/Nauka/js-linkedin-connector/node_modules/grunt-jasmine-node/node_modules/jasmine-node/lib/jasmine-node/index.js:151:9) 
    at Object.<anonymous> (/home/adebksi/Nauka/js-linkedin-connector/node_modules/grunt-jasmine-node/tasks/jasmine-node-task.js:110:19) 
    at Object.thisTask.fn (/home/adebksi/Nauka/js-linkedin-connector/node_modules/grunt/lib/grunt/task.js:78:16) 
    at Object.<anonymous> (/home/adebksi/Nauka/js-linkedin-connector/node_modules/grunt/lib/util/task.js:282:30) 
    at Task.runTaskFn (/home/adebksi/Nauka/js-linkedin-connector/node_modules/grunt/lib/util/task.js:235:24) 
    at Task.<anonymous> (/home/adebksi/Nauka/js-linkedin-connector/node_modules/grunt/lib/util/task.js:281:12) 
    at Task.start (/home/adebksi/Nauka/js-linkedin-connector/node_modules/grunt/lib/util/task.js:290:5) 
    at Object.grunt.tasks (/home/adebksi/Nauka/js-linkedin-connector/node_modules/grunt/lib/grunt.js:155:8) 
    at Object.module.exports [as cli] (/home/adebksi/Nauka/js-linkedin-connector/node_modules/grunt/lib/grunt/cli.js:38:9) 
    at Object.<anonymous> (/home/adebksi/.nvm/v0.10.15/lib/node_modules/grunt-cli/bin/grunt:41:20) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:901:3 

:

'use strict'; 
var loginRedirectMiddleware = require('../server/loginRedirectMiddleware'); 
var fs = require('fs'); 
var util = require('../server/util'); 

describe('loginRedirectMiddleware', function(){ 
    spyOn(fs,'read'); 
... 
}); 

지금은 spyOn 호출과 라인에 오류가 점점 오전 :

지금, 나는 가짜 파일 시스템에 read 기능을 이런 식으로 뭔가를 시도 내가 잘못하고있어?

내가 console.log(typeof fs.read) 일 때 나는이 속성이 기능이므로 function을 얻고 있습니다.

답변

3

좋아, 내 잘못 이었어. describe 함수에서 스파이를 만들려고했는데, 예를 들어 it에 넣어야했다.