함수가 호출되지 않았는지 어떻게 테스트 할 수 있습니까?


84

나는 라우터를 테스트하고 있으며 두 가지 기능이 있으며 첫 번째 기능이 호출되고 두 번째 기능이 호출되지 않았는지 테스트해야합니다. 메서드가 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?
});

답변:


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.