당신은 정말로 단위 테스트를해야한다고 생각하지 않습니다 private
회원. 공개 회원에 대한 포괄적 인 테스트가있는 한 비공개 회원의 모든 오류는 공개 회원에게 오류로 표시됩니다. 그런 다음 좋은 ol '디버깅을 사용하여 정확한 문제가 무엇인지 찾아 낼 수 있습니다.
다른 방법으로 테스트를 프로덕션 환경으로 실행하는 경우 엔 클로징 객체를 노출하고 테스트 할 수 있습니다. 배포하기 전에 둘러싼 객체에 대한 참조를 제거해야합니다. 그렇지 않으면 어떻게 든 자동화 할 수 있습니다. 솔직히 말해서, 공공 소비를 위해 도서관을 포장하지 않는 한 일반적으로 그것을 제거하지 않아도됩니다. 이 명확하게 접근 개인 회원이 수행 할 수없는 것을 이해되면 개인 데이터/기능에 액세스 할 수있는 사내 시스템의 경우
var myModule = (function() {
var _this = this;
var Foo = function() { /* ... */ };
var Bar = function() {
this.foo = new Foo();
};
Bar.prototype.someMethod = function() {
this.foo.someMethod();
};
return {
'Bar': Bar,
'__private__': _this
};
})();
function test_foo(obj) {
var foo = obj.__private__.Foo;
assert(foo.prop, 10)
}
는 비 문제
일반적으로입니다. 이것은
__private__
과 같은 이름을 가진 둘러싼 객체에 대한 참조를 제공함으로써 강조됩니다. (내가 파이썬에 대해 알 수 있습니까?))