unit 테스트 할 node.js 앱에 JS 메서드가 있습니다. 그것은 서비스 메소드에 여러번 호출을하고, 매번 그 서비스에 콜백을 전달한다. 콜백은 결과를 누적합니다.Jasmine을 사용하여 인수 값을 기반으로 JS 콜백을 스텁합니다.
재 스민을 사용하여 서비스 메소드를 스텁 아웃 할 수 있으므로 스텁이 호출 될 때마다 인수로 결정된 응답으로 콜백을 호출 할 수 있습니까?
이것은 (같은) 방법 난 시험 :
내가 service_method은 ARG1과 ARG2로 호출 될 때, 스텁 특정 응답은 F 콜백을 호출하도록 지정하려면function methodUnderTest() {
var result = [];
var f = function(response) {result.push(response)};
service_method(arg1, arg2, f);
service_method(other1, other2, f);
// Do something with the results...
}
하고, other1 및 other2와 함께 호출 될 때 다른 특정 응답으로 동일한 콜백을 호출합니다.
다른 프레임 워크도 고려해 볼 수 있습니다. (Nodeunit을 시도했지만 원하는대로 할 수 없었습니다.)
여기 내 대답은 모두 내 질문을 잘못 해석 한 것입니다. 이유가 궁금합니다. 나는 정말로 methodUnderTest()를 테스트하고있다. 나는 그것이 dependencies (이 경우에는 service_method())를 호출 한 후에 결과를 누적시키는 지 확인하고자한다. – Ladlestein
좋아, 자네가 내부 방법 f를 테스트하고 싶다고 생각하니? 하지만 왜 service_method()를 조롱하고 싶습니까? 여기에 모듈의 일부가 아닌가? 그렇다면 조롱하지 마십시오. –
아니요, Andreas - 물론 methodUnderTest()를 테스트하고 싶습니다. 값을 반환하는 대신 콜백을 호출하는 service_method()에 따라 다릅니다. service_method()는 내가 스텁하고자하는 것입니다. 응답과 함께 f()를 호출합니다. 내 모의 service_method()를 다시 호출하기를 원합니다. Sinon.JS를 사용하여 service_method()를 스텁하고 stubbed "return"값으로 콜백을 호출했습니다. – Ladlestein