반응형
함수가 호출되지 않았는지 어떻게 테스트 할 수 있습니까?
나는 라우터를 테스트하고 있으며 두 가지 기능이 있으며 첫 번째 기능이 호출되고 두 번째 기능이 호출되지 않았는지 테스트해야합니다. 메서드는 toHaveBeenCalled
있지만 함수가 호출되지 않았는지 테스트 할 메서드는 없습니다. 어떻게 테스트 할 수 있습니까?
다음과 같은 코드가 있습니다.
var args, controller, router;
beforeEach(function() {
controller = {
foo: function(name, id) {
args = [].slice.call(arguments);
},
bar: function(name) {
}
};
spyOn(controller, "foo").and.callThrough();
spyOn(controller, "bar").and.callThrough();
router = new route();
router.match('/foo/bar/{{id}}--{{name}}', controller.foo);
router.match('/foo/baz/{{id}}--{{name}}', controller.bar);
router.exec('/foo/bar/10--hello');
});
it('foo route shuld be called', function() {
expect(controller.foo).toHaveBeenCalled();
});
it('bar route shoud not be called', function() {
// how to test if bar was not called?
});
not
연산자 사용 :
expect(controller.bar).not.toHaveBeenCalled();
참조 URL : https://stackoverflow.com/questions/24282390/how-can-i-test-if-function-have-not-been-called
반응형
'IT Share you' 카테고리의 다른 글
angular.element에서 원시 DOM 요소를 얻는 방법이 있습니까? (0) | 2021.01.07 |
---|---|
Android Studio에서 Facebook 라이브러리 가져 오기 : 'ANDROID_BUILD_SDK_VERSION'속성을 찾을 수 없습니다. (0) | 2021.01.07 |
AngularJs-SELECT의 ng-model (0) | 2021.01.07 |
'x << ~ y'는 JavaScript에서 무엇을 나타 냅니까? (0) | 2021.01.07 |
Python의 argparse에서 동일한 옵션을 여러 번 사용 (0) | 2021.01.07 |