2014-01-22 3 views
0

모카 테스트에서는 항상 동일한 라이브러리가 필요합니다. 이 작업을 수행하거나 더 나은 솔루션이 존재하는 방법 var user = new somefile.User(); 같은 접두어를 사용하지 않고모카 테스트에서 변수를 재사용하는 방법은 무엇입니까?

describe('xxx', function() { 
    it('xxx', function (done) { 
    var user = new User(); 
    done(); 
    }); 
}); 

:

var mongoose = require('mongoose'), 
    User = mongoose.model('User'), 
    _ = require('underscore'); 

내가 이런 모든 테스트 파일을 사용하려면 : 예를 들면? 감사.

답변

1

기본적으로 불가능합니다.

모카는 모듈을 필요로하는 데 도움이 -r (또는 긴 버전의 --require) 매개 변수를 가지고 있지만, documentation 상태로 :

--require 옵션은 그래서, 같은 should.js 같은 라이브러리에 유용 각 테스트 파일 내에 수동으로 require('should')을 호출하는 대신 간단히 --require should 일 수 있습니다. 이것은 모듈 번호가 Object.prototype 인 경우에 적합하지만 모듈의 내보내기에 액세스하려면 모듈을 요구해야합니다 (예 : var should = require('should')).

해결 방법은 기본적으로 수출 아무것도하지만 당신은 (기본적으로 아래 당신이 prefix으로 어떤 제안을 제공) 하나의 모듈을 사용하여 필요한 모든 필요한 모듈을하지 않습니다 도우미 파일을 소개하는 것 같이 내가 상상할 수있는 무엇 :

module.exports = { 
    mongoose: require('mongoose'), 
    User: mongoose.model('User'), 
    _: require('underscore') 
}; 

이 만 실제 테스트 파일에서 (도우미 파일) 하나 모듈을 가져올 수 있습니다 및 액세스와 같은 하위 개체로 모든 다른 모듈 :

var helper = require('./helper'); 

describe('xxx', function() { 
    it('xxx', function (done) { 
    var user = new helper.User(); 
    done(); 
    }); 
}); 

아마도 helper보다 더 나은 이름을 사용할 수 있지만 기본적으로이 방법을 사용할 수 있습니다.

+0

예. 알겠습니다. 내가 원하는 것은 Java의'private static' 필드와 매우 비슷합니다. 하지만 그것은 js에서 작동하는 방법이 아닙니다. –

관련 문제