Wie kann ich testen, ob eine Funktion nicht aufgerufen wurde?

Lesezeit: 1 Minute

Benutzer-Avatar
jkubisch

Ich teste den Router und habe zwei Funktionen, und ich muss testen, ob die erste Funktion aufgerufen wurde und die zweite nicht. Es gibt Methode toHaveBeenCalled aber es gibt keine Methode zum Testen, ob die Funktion nicht aufgerufen wurde. Wie kann ich das testen?

Ich habe Code wie folgt:

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?
});

Benutzer-Avatar
Gänsegeier

Verwenden Sie die not Operator:

expect(controller.bar).not.toHaveBeenCalled();

1246690cookie-checkWie kann ich testen, ob eine Funktion nicht aufgerufen wurde?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy