나도 대답을 찾고 나서 여기서 끝났습니다. 이것이 내가 한 것입니다 :
저는 mockery을 사용하여 시작했는데, 내 모델이 속한 모듈을 조롱했습니다. 각 모델을 속성으로 사용하여 내 모의 모듈을 작성했습니다. 이러한 속성은 실제 모델을 감싸므로 테스트중인 코드에 대해 자식 속성이 존재합니다. 그런 다음 저장과 같은 테스트를 위해 조작하려는 메서드를 재정의합니다. 이것은 조롱을 취소 할 수있는 조롱의 장점이있었습니다.
하지만 ...
정말하지 않는 모든 모델에 대한 래퍼 속성을 작성하는 조롱을 취소에 대해 충분히 관심. 이제 모듈을 필요로하고 조작하고 싶은 함수를 오버라이드합니다. 문제가된다면 아마 테스트를 별도의 프로세스로 실행할 것입니다. 내 시험의 준비 부분에서
: 언급 할 가치도
// mock out database saves
var db = require("../../schema");
db.Model1.prototype.save = function(callback) {
console.log("in the mock");
callback();
};
db.Model2.prototype.save = function(callback) {
console.log("in the mock");
callback("mock staged an error for testing purposes");
};
코드의 예가 있습니까? – bouncingHippo